我试图将SID标识符传递给函数

myFunction(SID userSid) {}


我的种子是“ S-1-5-11”,但我不知道如何将SID传递给函数

PSID sid = "S-1-5-11";
myFunction(sid);



  没有PSID到_SID的构造函数

最佳答案

SID是一种独特的类型。它是an opaque data structure(实现为C结构),而不仅仅是字符串的另一个名称。

您不能将字符串传递给需要SID形式参数的函数。您需要创建一个SID对象并将其传递。

有多种API函数可让您创建和操作SID;它们在here中列出。

如果要使用包含a valid SID的字符串创建SID,则可以调用ConvertStringSidToSid函数。例如:

PSID psid;
BOOL bSucceeded = ConvertStringSidToSid(TEXT("S-1-5-11"), &psid);
assert(bSucceeded != FALSE);

// ... use the SID via the pointer

// once you are finished, free it:
LocalFree(psid);

09-29 21:43