LIST_ENTRY WellKnownSidListHead;
+PSID LsapLocalSystemSid = NULL;
/* FUNCTIONS ***************************************************************/
PULONG SubAuthorities,
PWSTR AccountName,
PWSTR DomainName,
- SID_NAME_USE Use)
+ SID_NAME_USE Use,
+ PSID *SidPtr)
{
PWELL_KNOWN_SID SidEntry;
PULONG p;
InsertTailList(&WellKnownSidListHead,
&SidEntry->ListEntry);
+ if (SidPtr != NULL)
+ *SidPtr = SidEntry->Sid;
+
return TRUE;
}
NULL,
szAccountName,
szDomainName,
- SidTypeDomain);
+ SidTypeDomain,
+ NULL);
/* Null Sid */
LsapLoadString(hInstance, IDS_NULL_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* World Sid */
LsapLoadString(hInstance, IDS_WORLD_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Local Sid */
LsapLoadString(hInstance, IDS_LOCAL_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Creator Owner Sid */
LsapLoadString(hInstance, IDS_CREATOR_OWNER_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Creator Group Sid */
LsapLoadString(hInstance, IDS_CREATOR_GROUP_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Creator Owner Server Sid */
LsapLoadString(hInstance, IDS_CREATOR_OWNER_SERVER_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Creator Group Server Sid */
LsapLoadString(hInstance, IDS_CREATOR_GROUP_SERVER_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
L"",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Dialup Sid */
LsapLoadString(hInstance, IDS_DIALUP_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Network Sid */
LsapLoadString(hInstance, IDS_DIALUP_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Batch Sid*/
LsapLoadString(hInstance, IDS_BATCH_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Interactive Sid */
LsapLoadString(hInstance, IDS_INTERACTIVE_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Service Sid */
LsapLoadString(hInstance, IDS_SERVICE_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Anonymous Logon Sid */
LsapLoadString(hInstance, IDS_ANONYMOUS_LOGON_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Proxy Sid */
LsapLoadString(hInstance, IDS_PROXY_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Enterprise Controllers Sid */
LsapLoadString(hInstance, IDS_ENTERPRISE_CONTROLLERS_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Principal Self Sid */
LsapLoadString(hInstance, IDS_PRINCIPAL_SELF_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Authenticated Users Sid */
LsapLoadString(hInstance, IDS_AUTHENTICATED_USER_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Restricted Code Sid */
LsapLoadString(hInstance, IDS_RESTRICTED_CODE_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Terminal Server Sid */
LsapLoadString(hInstance, IDS_TERMINAL_SERVER_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Remote Logon Sid */
LsapLoadString(hInstance, IDS_REMOTE_LOGON_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* This Organization Sid */
LsapLoadString(hInstance, IDS_THIS_ORGANIZATION_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Local System Sid */
LsapLoadString(hInstance, IDS_LOCAL_SYSTEM_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ &LsapLocalSystemSid);
/* Local Service Sid */
LsapLoadString(hInstance, IDS_LOCAL_SERVICE_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
LsapCreateSid(&NtAuthority,
1,
SubAuthorities,
L"LOCALSERVICE",
L"NT AUTHORITY",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Network Service Sid */
LsapLoadString(hInstance, IDS_NETWORK_SERVICE_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
LsapCreateSid(&NtAuthority,
1,
SubAuthorities,
L"NETWORKSERVICE",
L"NT AUTHORITY",
- SidTypeWellKnownGroup);
+ SidTypeWellKnownGroup,
+ NULL);
/* Builtin Domain Sid */
LsapLoadString(hInstance, IDS_BUILTIN_DOMAIN_RID, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeDomain);
+ SidTypeDomain,
+ NULL);
/* Administrators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_ADMINS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Users Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_USERS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Guests Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_GUESTS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Power User Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_POWER_USERS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Account Operators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_ACCOUNT_OPS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* System Operators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_SYSTEM_OPS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Print Operators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_PRINT_OPS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Backup Operators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_BACKUP_OPS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Replicators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_REPLICATOR, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* RAS Servers Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_RAS_SERVERS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Pre-Windows 2000 Compatible Access Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_PREW2KCOMPACCESS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Remote Desktop Users Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_REMOTE_DESKTOP_USERS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* Network Configuration Operators Alias Sid */
LsapLoadString(hInstance, IDS_ALIAS_RID_NETWORK_CONFIGURATION_OPS, szAccountName, 80);
SubAuthorities,
szAccountName,
szDomainName,
- SidTypeAlias);
+ SidTypeAlias,
+ NULL);
/* FIXME: Add more well known sids */