advapi32: Add more helper functions.
Add ADVAPI_GetComputerSid.
This commit is contained in:
parent
e10f5b1d50
commit
9d43504655
@ -22,5 +22,6 @@
|
|||||||
|
|
||||||
const char * debugstr_sid(PSID sid);
|
const char * debugstr_sid(PSID sid);
|
||||||
BOOL ADVAPI_IsLocalComputer(LPCWSTR ServerName);
|
BOOL ADVAPI_IsLocalComputer(LPCWSTR ServerName);
|
||||||
|
BOOL ADVAPI_GetComputerSid(PSID sid);
|
||||||
|
|
||||||
#endif /* __WINE_ADVAPI32MISC_H */
|
#endif /* __WINE_ADVAPI32MISC_H */
|
||||||
|
@ -342,6 +342,43 @@ BOOL ADVAPI_IsLocalComputer(LPCWSTR ServerName)
|
|||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************************************
|
||||||
|
* ADVAPI_GetComputerSid
|
||||||
|
*
|
||||||
|
* Reads the computer SID from the registry.
|
||||||
|
*/
|
||||||
|
BOOL ADVAPI_GetComputerSid(PSID sid)
|
||||||
|
{
|
||||||
|
HKEY key;
|
||||||
|
LONG ret;
|
||||||
|
|
||||||
|
if ((ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
|
||||||
|
"SECURITY\\SAM\\Domains\\Account", 0,
|
||||||
|
KEY_READ, &key)) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
static const WCHAR V[] = { 'V',0 };
|
||||||
|
DWORD size = 0;
|
||||||
|
ret = RegQueryValueExW(key, V, NULL, NULL, NULL, &size);
|
||||||
|
if (ret == ERROR_MORE_DATA || ret == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
BYTE * data = HeapAlloc(GetProcessHeap(), 0, size);
|
||||||
|
if (data)
|
||||||
|
{
|
||||||
|
if ((ret = RegQueryValueExW(key, V, NULL, NULL,
|
||||||
|
data, &size)) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
/* the SID is in the last 24 bytes of the binary data */
|
||||||
|
CopyMemory(sid, &data[size-24], 24);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RegCloseKey(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* ##############################
|
/* ##############################
|
||||||
###### TOKEN FUNCTIONS ######
|
###### TOKEN FUNCTIONS ######
|
||||||
##############################
|
##############################
|
||||||
|
Loading…
x
Reference in New Issue
Block a user