166#define CONST_LUID(x1, x2) {x1, x2}
190 TRACE(
"LsapAddAuthPackage()\n");
210 TRACE(
"LdrLoadDll failed (Status 0x%08lx)\n",
Status);
221 TRACE(
"LdrGetProcedureAddress() failed (Status 0x%08lx)\n",
Status);
232 TRACE(
"LdrGetProcedureAddress() failed (Status 0x%08lx)\n",
Status);
243 TRACE(
"LdrGetProcedureAddress() failed (Status 0x%08lx)\n",
Status);
254 TRACE(
"LdrGetProcedureAddress() failed (Status 0x%08lx)\n",
Status);
265 TRACE(
"LdrGetProcedureAddress() failed (Status 0x%08lx)\n",
Status);
290 TRACE(
"LdrGetProcedureAddress() failed (Status 0x%08lx)\n",
Status);
304 TRACE(
"Package->LsaApInitializePackage() failed (Status 0x%08lx)\n",
Status);
356 ListEntry = ListEntry->
Flink;
397 *ClientBaseAddress =
NULL;
420 if (ClientBaseAddress ==
NULL)
515 ULONG PackageNameLength;
518 TRACE(
"(%p %p)\n", RequestMsg, LogonContext);
523 TRACE(
"PackageName: %s\n", PackageName);
530 if ((PackageNameLength == Package->
Name->
Length) &&
537 ListEntry = ListEntry->
Flink;
558 ListEntry = ListEntry->
Flink;
572 TRACE(
"(%p %p)\n", RequestMsg, LogonContext);
580 TRACE(
"LsapGetAuthenticationPackage() failed to find a package\n");
589 if (LocalBuffer ==
NULL)
601 TRACE(
"NtReadVirtualMemory() failed (Status 0x%08lx)\n",
Status);
625 TRACE(
"Package->LsaApCallPackage() failed (Status 0x%08lx)\n",
Status);
628 if (LocalBuffer !=
NULL)
643 ULONG LocalGroupsLength = 0;
645 ULONG SidHeaderLength = 0;
649 ULONG AllocatedSids = 0;
660 TRACE(
"RtlAllocateHeap() failed\n");
677 if (SidHeader ==
NULL)
683 for (
i = 0;
i < ClientGroupsCount;
i++)
696 TRACE(
"Sid %lu: Length %lu\n",
i, SidLength);
725 if (SidHeader !=
NULL)
732 for (
i = 0;
i < AllocatedSids;
i++)
771 ERR(
"Group buffer allocation failed!\n");
792 TokenInfo1->
Groups = Groups;
802 ERR(
"Group buffer allocation failed!\n");
814 TokenInfo1->
Groups = Groups;
819 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
850 ERR(
"Group buffer allocation failed!\n");
864 TokenInfo1->
Groups = Groups;
875 ERR(
"Group buffer allocation failed!\n");
879 TokenInfo1->
Groups = Groups;
941 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
964 ERR(
"Group SID creation failed!\n");
976 ERR(
"Group buffer allocation failed!\n");
990 for (
i = 0;
i < (*TokenGroups)->GroupCount;
i++)
1005 ERR(
"Group buffer allocation failed!\n");
1009 Groups->
GroupCount = (*TokenGroups)->GroupCount;
1011 for (
i = 0;
i < (*TokenGroups)->GroupCount;
i++)
1013 Groups->
Groups[
i].
Sid = (*TokenGroups)->Groups[
i].Sid;
1073 TRACE(
"SamIConnect failed (Status %08lx)\n",
Status);
1080 &BuiltinDomainHandle);
1083 TRACE(
"SamrOpenDomain failed (Status %08lx)\n",
Status);
1090 &AccountDomainHandle);
1093 TRACE(
"SamrOpenDomain failed (Status %08lx)\n",
Status);
1099 &BuiltinMembership);
1102 TRACE(
"SamrGetAliasMembership failed (Status %08lx)\n",
Status);
1108 &AccountMembership);
1111 TRACE(
"SamrGetAliasMembership failed (Status %08lx)\n",
Status);
1115 TRACE(
"Builtin Memberships: %lu\n", BuiltinMembership.
Count);
1116 for (
i = 0;
i < BuiltinMembership.
Count;
i++)
1124 TRACE(
"LsapAppendSidToGroups failed (Status %08lx)\n",
Status);
1129 TRACE(
"Account Memberships: %lu\n", AccountMembership.
Count);
1130 for (
i = 0;
i < AccountMembership.
Count;
i++)
1138 TRACE(
"LsapAppendSidToGroups failed (Status %08lx)\n",
Status);
1152 if (AccountDomainHandle !=
NULL)
1155 if (BuiltinDomainHandle !=
NULL)
1158 if (ServerHandle !=
NULL)
1271 if (LocalPrivileges ==
NULL)
1280 TokenPrivilegeCount = (*TokenPrivileges)->PrivilegeCount;
1282 for (
i = 0;
i < TokenPrivilegeCount;
i++)
1293 if (LocalPrivileges ==
NULL)
1297 for (
i = 0;
i < TokenPrivilegeCount;
i++)
1299 LocalPrivileges->
Privileges[
i].
Luid = (*TokenPrivileges)->Privileges[
i].Luid;
1420 TRACE(
"LsapLogonUser(%p %p)\n", RequestMsg, LogonContext);
1427 if (Package ==
NULL)
1429 ERR(
"LsapGetAuthenticationPackage() failed to find a package\n");
1439 if (LocalAuthInfo ==
NULL)
1441 ERR(
"RtlAllocateHeap() failed\n");
1453 ERR(
"NtReadVirtualMemory() failed (Status 0x%08lx)\n",
Status);
1454 RtlFreeHeap(RtlGetProcessHeap(), 0, LocalAuthInfo);
1467 ERR(
"LsapCopyLocalGroups failed (Status 0x%08lx)\n",
Status);
1485 &TokenInformationType,
1488 &AuthenticatingAuthority,
1504 &TokenInformationType,
1507 &AuthenticatingAuthority,
1521 &TokenInformationType,
1524 &AuthenticatingAuthority);
1529 ERR(
"LsaApLogonUser/Ex/2 failed (Status 0x%08lx)\n",
Status);
1537 TokenInformationType,
1541 ERR(
"LsapAddLocalGroupsToTokenInfo() failed (Status 0x%08lx)\n",
Status);
1547 TokenInformationType,
1551 ERR(
"LsapAddDefaultGroups() failed (Status 0x%08lx)\n",
Status);
1556 TokenInformationType);
1559 ERR(
"LsapAddSamGroups() failed (Status 0x%08lx)\n",
Status);
1564 TokenInformationType);
1567 ERR(
"LsapSetTokenOwner() failed (Status 0x%08lx)\n",
Status);
1572 TokenInformationType);
1575 ERR(
"LsapAddTokenDefaultDacl() failed (Status 0x%08lx)\n",
Status);
1580 TokenInformationType);
1583 ERR(
"LsapSetPrivileges() failed (Status 0x%08lx)\n",
Status);
1674 ERR(
"NtCreateToken failed (Status 0x%08lx)\n",
Status);
1680 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
1704 ERR(
"LsapSetLogonSessionData failed (Status 0x%08lx)\n",
Status);
1722 ERR(
"NtDuplicateObject failed (Status 0x%08lx)\n",
Status);
1757 if (LocalAuthInfo !=
NULL)
1758 RtlFreeHeap(RtlGetProcessHeap(), 0, LocalAuthInfo);
1761 if (TokenInformation !=
NULL)
1767 if (TokenInfo0 !=
NULL)
1787 if (TokenInfo1 !=
NULL)
1820 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
1825 if (AccountName !=
NULL)
1834 if (AuthenticatingAuthority !=
NULL)
1851 TRACE(
"LsapLogonUser done (Status 0x%08lx)\n",
Status);
NTSTATUS LsapCallAuthenticationPackage(PLSA_API_MSG RequestMsg, PLSAP_LOGON_CONTEXT LogonContext)
NTSTATUS(NTAPI * PLSA_GET_CREDENTIALS)(PLUID, ULONG, PULONG, BOOLEAN, PLSA_STRING, PULONG, PLSA_STRING)
NTSTATUS LsapLogonUser(PLSA_API_MSG RequestMsg, PLSAP_LOGON_CONTEXT LogonContext)
static NTSTATUS NTAPI LsapCopyToClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG Length, IN PVOID ClientBaseAddress, IN PVOID BufferToCopy)
struct _LSA_TOKEN_INFORMATION_NULL LSA_TOKEN_INFORMATION_NULL
NTSTATUS(NTAPI * PLSA_ADD_CREDENTIAL)(PLUID, ULONG, PLSA_STRING, PLSA_STRING)
NTSTATUS(NTAPI * PLSA_AP_INITIALIZE_PACKAGE)(ULONG, PLSA_DISPATCH_TABLE, PLSA_STRING, PLSA_STRING, PLSA_STRING *)
static NTSTATUS LsapAddDefaultGroups(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType, IN SECURITY_LOGON_TYPE LogonType)
static NTSTATUS LsapAddSamGroups(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
NTSTATUS __stdcall SamrOpenDomain(SAMPR_HANDLE ServerHandle, ACCESS_MASK DesiredAccess, PRPC_SID DomainId, SAMPR_HANDLE *DomainHandle)
PVOID PLSA_CLIENT_REQUEST
enum _LSA_TOKEN_INFORMATION_TYPE LSA_TOKEN_INFORMATION_TYPE
NTSTATUS(NTAPI * PLSA_AP_LOGON_USER_EX2)(PLSA_CLIENT_REQUEST, SECURITY_LOGON_TYPE, PVOID, PVOID, ULONG, PVOID *, PULONG, PLUID, PNTSTATUS, PLSA_TOKEN_INFORMATION_TYPE, PVOID *, PUNICODE_STRING *, PUNICODE_STRING *, PUNICODE_STRING *, PVOID, PVOID)
VOID NTAPI SamIFree_SAMPR_ULONG_ARRAY(PSAMPR_ULONG_ARRAY Ptr)
PVOID NTAPI LsapAllocateHeapZero(IN ULONG Length)
struct _AUTH_PACKAGE AUTH_PACKAGE
static NTSTATUS LsapAddPrivilegeToTokenPrivileges(PTOKEN_PRIVILEGES *TokenPrivileges, PLSAPR_LUID_AND_ATTRIBUTES Privilege)
VOID LsapTerminateLogon(_In_ PLUID LogonId)
struct _LSA_TOKEN_INFORMATION_V1 * PLSA_TOKEN_INFORMATION_V1
static const LUID SeCreateGlobalPrivilege
static const LUID SeChangeNotifyPrivilege
static const LUID SeImpersonatePrivilege
struct LSA_DISPATCH_TABLE * PLSA_DISPATCH_TABLE
NTSTATUS LsapLookupAuthenticationPackage(PLSA_API_MSG RequestMsg, PLSAP_LOGON_CONTEXT LogonContext)
_LSA_TOKEN_INFORMATION_TYPE
@ LsaTokenInformationNull
static NTSTATUS LsapAddLocalGroups(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType, IN PTOKEN_GROUPS LocalGroups)
static LSA_DISPATCH_TABLE DispatchTable
struct _SAMPR_SID_INFORMATION * PSAMPR_SID_INFORMATION
NTSTATUS __stdcall SamrCloseHandle(SAMPR_HANDLE *SamHandle)
static NTSTATUS NTAPI LsapAddAuthPackage(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
struct _LSA_TOKEN_INFORMATION_V1 LSA_TOKEN_INFORMATION_V1
struct _SAMPR_SID_INFORMATION SAMPR_SID_INFORMATION
NTSTATUS(NTAPI * PLSA_COPY_FROM_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, ULONG, PVOID, PVOID)
static NTSTATUS LsapSetTokenOwner(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
enum _LSA_TOKEN_INFORMATION_TYPE * PLSA_TOKEN_INFORMATION_TYPE
static NTSTATUS LsapAddTokenDefaultDacl(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
static NTSTATUS LsapAppendSidToGroups(IN PTOKEN_GROUPS *TokenGroups, IN PSID DomainSid, IN ULONG RelativeId)
NTSTATUS __stdcall SamrGetAliasMembership(SAMPR_HANDLE DomainHandle, PSAMPR_PSID_ARRAY SidArray, PSAMPR_ULONG_ARRAY Membership)
VOID NTAPI LsapFreeHeap(IN PVOID Base)
PVOID(NTAPI * PLSA_ALLOCATE_LSA_HEAP)(ULONG)
static PAUTH_PACKAGE LsapGetAuthenticationPackage(IN ULONG PackageId)
static NTSTATUS NTAPI LsapCopyFromClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG Length, IN PVOID BufferToCopy, IN PVOID ClientBaseAddress)
#define CONST_LUID(x1, x2)
static NTSTATUS NTAPI LsapFreeClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN PVOID ClientBaseAddress)
NTSTATUS(NTAPI * PLSA_AP_CALL_PACKAGE_PASSTHROUGH)(PLSA_CLIENT_REQUEST, PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS)
struct _SAMPR_PSID_ARRAY SAMPR_PSID_ARRAY
NTSTATUS(NTAPI * PLSA_AP_CALL_PACKAGE_INTERNAL)(PLSA_CLIENT_REQUEST, PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS)
wchar_t * PSAMPR_SERVER_NAME
struct _SAMPR_PSID_ARRAY * PSAMPR_PSID_ARRAY
NTSTATUS LsapInitAuthPackages(VOID)
VOID(NTAPI * PLSA_FREE_LSA_HEAP)(PVOID)
struct _LSA_TOKEN_INFORMATION_NULL * PLSA_TOKEN_INFORMATION_NULL
PVOID NTAPI LsapAllocateHeap(IN ULONG Length)
NTSTATUS(NTAPI * PLSA_COPY_TO_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, ULONG, PVOID, PVOID)
NTSTATUS(NTAPI * PLSA_AP_LOGON_USER_INTERNAL)(PLSA_CLIENT_REQUEST, SECURITY_LOGON_TYPE, PVOID, PVOID, ULONG, PVOID *, PULONG, PLUID, PNTSTATUS, PLSA_TOKEN_INFORMATION_TYPE, PVOID *, PUNICODE_STRING *, PUNICODE_STRING *)
NTSTATUS(NTAPI * PLSA_AP_LOGON_USER_EX)(PLSA_CLIENT_REQUEST, SECURITY_LOGON_TYPE, PVOID, PVOID, ULONG, PVOID *, PULONG, PLUID, PNTSTATUS, PLSA_TOKEN_INFORMATION_TYPE, PVOID *, PUNICODE_STRING *, PUNICODE_STRING *, PUNICODE_STRING *)
NTSTATUS(NTAPI * PLSA_AP_CALL_PACKAGE_UNTRUSTED)(PLSA_CLIENT_REQUEST, PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS)
static LIST_ENTRY PackageListHead
VOID(NTAPI * PLSA_AP_LOGON_TERMINATED)(PLUID)
NTSTATUS(NTAPI * PLSA_DELETE_CREDENTIAL)(PLUID, ULONG, PLSA_STRING)
NTSTATUS NTAPI SamIConnect(PSAMPR_SERVER_NAME ServerName, SAMPR_HANDLE *ServerHandle, ACCESS_MASK DesiredAccess, BOOLEAN Trusted)
NTSTATUS(NTAPI * PLSA_FREE_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, PVOID)
static NTSTATUS LsapCopyLocalGroups(IN PLSAP_LOGON_CONTEXT LogonContext, IN PTOKEN_GROUPS ClientGroups, IN ULONG ClientGroupsCount, OUT PTOKEN_GROUPS *TokenGroups)
static NTSTATUS LsapSetPrivileges(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
struct _AUTH_PACKAGE * PAUTH_PACKAGE
static NTSTATUS NTAPI LsapAllocateClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG LengthRequired, OUT PVOID *ClientBaseAddress)
NTSTATUS(NTAPI * PLSA_DELETE_LOGON_SESSION)(PLUID)
NTSTATUS(NTAPI * PLSA_CREATE_LOGON_SESSION)(PLUID)
VOID NTAPI LsaIFree_LSAPR_PRIVILEGE_SET(IN PLSAPR_PRIVILEGE_SET Ptr)
NTSTATUS(NTAPI * PLSA_ALLOCATE_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, ULONG, PVOID *)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
BOOL WINAPI EqualSid(PSID pSid1, PSID pSid2)
#define _strnicmp(_String1, _String2, _MaxCount)
PSID LsapAdministratorsSid
NTSTATUS NTAPI LsapAddCredential(_In_ PLUID LogonId, _In_ ULONG AuthenticationPackage, _In_ PLSA_STRING PrimaryKeyValue, _In_ PLSA_STRING Credential)
NTSTATUS NTAPI LsapGetCredentials(_In_ PLUID LogonId, _In_ ULONG AuthenticationPackage, _Inout_ PULONG QueryContext, _In_ BOOLEAN RetrieveAllCredentials, _Inout_ PLSA_STRING PrimaryKeyValue, _Out_ PULONG PrimaryKeyLength, _Out_ PLSA_STRING Credentials)
NTSTATUS NTAPI LsapCreateLogonSession(IN PLUID LogonId)
NTSTATUS NTAPI LsapDeleteLogonSession(IN PLUID LogonId)
NTSTATUS NTAPI LsapDeleteCredential(_In_ PLUID LogonId, _In_ ULONG AuthenticationPackage, _In_ PLSA_STRING PrimaryKeyValue)
NTSTATUS LsapSetLogonSessionData(_In_ PLUID LogonId, _In_ ULONG LogonType, _In_ PUNICODE_STRING UserName, _In_ PUNICODE_STRING LogonDomain, _In_ PSID Sid)
PSID LsapAppendRidToSid(PSID SrcSid, ULONG Rid)
struct _LSAP_LOGON_CONTEXT * PLSAP_LOGON_CONTEXT
NTSTATUS LsapCreateTokenSd(_In_ const TOKEN_USER *User, _Outptr_ PSECURITY_DESCRIPTOR *TokenSd, _Out_ PULONG TokenSdSize)
Creates a security descriptor for the token object.
#define InsertTailList(ListHead, Entry)
#define InitializeListHead(ListHead)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_In_ GUID _In_ PVOID ValueData
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL, DWORD, DWORD, PSID)
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
NTSTATUS NTAPI LdrUnloadDll(_In_ PVOID BaseAddress)
NTSTATUS NTAPI DECLSPEC_HOTPATCH LdrLoadDll(_In_opt_ PWSTR SearchPath, _In_opt_ PULONG DllCharacteristics, _In_ PUNICODE_STRING DllName, _Out_ PVOID *BaseAddress)
NTSTATUS NTAPI LdrGetProcedureAddress(_In_ PVOID BaseAddress, _In_opt_ _When_(Ordinal==0, _Notnull_) PANSI_STRING Name, _In_opt_ _When_(Name==NULL, _In_range_(>, 0)) ULONG Ordinal, _Out_ PVOID *ProcedureAddress)
struct _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE
NTSTATUS WINAPI LsarOpenAccount(LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, ACCESS_MASK DesiredAccess, LSAPR_HANDLE *AccountHandle)
NTSTATUS WINAPI LsarOpenPolicy(LPWSTR SystemName, PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, ACCESS_MASK DesiredAccess, LSAPR_HANDLE *PolicyHandle)
NTSTATUS WINAPI LsarEnumeratePrivilegesAccount(LSAPR_HANDLE AccountHandle, PLSAPR_PRIVILEGE_SET *Privileges)
NTSTATUS WINAPI LsarClose(LSAPR_HANDLE *ObjectHandle)
#define SE_IMPERSONATE_PRIVILEGE
#define SE_CHANGE_NOTIFY_PRIVILEGE
#define SE_CREATE_GLOBAL_PRIVILEGE
#define DUPLICATE_SAME_ATTRIBUTES
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL Dacl
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision)
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
NTSYSAPI BOOLEAN NTAPI RtlEqualSid(_In_ PSID Sid1, _In_ PSID Sid2)
#define SE_GROUP_MANDATORY
#define SE_GROUP_ENABLED_BY_DEFAULT
#define RTL_REGISTRY_CONTROL
#define NtCurrentProcess()
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE LogonType
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS LocalGroups
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS _In_ PTOKEN_SOURCE _Out_ PVOID _Out_ PULONG _Inout_ PLUID LogonId
NTSTATUS NTAPI NtFreeVirtualMemory(IN HANDLE ProcessHandle, IN PVOID *UBaseAddress, IN PSIZE_T URegionSize, IN ULONG FreeType)
NTSTATUS NTAPI NtWriteVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN PVOID Buffer, IN SIZE_T NumberOfBytesToWrite, OUT PSIZE_T NumberOfBytesWritten OPTIONAL)
NTSTATUS NTAPI NtReadVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, OUT PVOID Buffer, IN SIZE_T NumberOfBytesToRead, OUT PSIZE_T NumberOfBytesRead OPTIONAL)
NTSTATUS NTAPI NtAllocateVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID *UBaseAddress, IN ULONG_PTR ZeroBits, IN OUT PSIZE_T URegionSize, IN ULONG AllocationType, IN ULONG Protect)
#define SAM_SERVER_LOOKUP_DOMAIN
#define SAM_SERVER_CONNECT
#define DOMAIN_GET_ALIAS_MEMBERSHIP
struct _LSA_STRING * PLSA_STRING
enum _SECURITY_LOGON_TYPE SECURITY_LOGON_TYPE
struct _MSV1_0_INTERACTIVE_LOGON * PMSV1_0_INTERACTIVE_LOGON
#define STATUS_NO_SUCH_PACKAGE
NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
_In_ DWORD _Out_ PDWORD _In_opt_ PCSTR MachineName
base of all file and directory entries
PLSA_DELETE_CREDENTIAL DeleteCredential
PLSA_GET_CREDENTIALS GetCredentials
PLSA_CREATE_LOGON_SESSION CreateLogonSession
PLSA_ALLOCATE_CLIENT_BUFFER AllocateClientBuffer
PLSA_FREE_CLIENT_BUFFER FreeClientBuffer
PLSA_COPY_FROM_CLIENT_BUFFER CopyFromClientBuffer
PLSA_ALLOCATE_LSA_HEAP AllocateLsaHeap
PLSA_COPY_TO_CLIENT_BUFFER CopyToClientBuffer
PLSA_DELETE_LOGON_SESSION DeleteLogonSession
PLSA_ADD_CREDENTIAL AddCredential
PLSA_FREE_LSA_HEAP FreeLsaHeap
PLSA_AP_LOGON_USER_EX2 LsaApLogonUserEx2
PLSA_AP_CALL_PACKAGE_UNTRUSTED LsaApCallPackageUntrusted
PLSA_AP_LOGON_USER_INTERNAL LsaApLogonUser
PLSA_AP_LOGON_USER_EX LsaApLogonUserEx
PLSA_AP_INITIALIZE_PACKAGE LsaApInitializePackage
PLSA_AP_LOGON_TERMINATED LsaApLogonTerminated
PLSA_AP_CALL_PACKAGE_INTERNAL LsaApCallPackage
PLSA_AP_CALL_PACKAGE_PASSTHROUGH LsaApCallPackagePassthrough
struct _LIST_ENTRY * Flink
HANDLE ClientProcessHandle
LSA_LOGON_USER_MSG LogonUser
LSA_CALL_AUTHENTICATION_PACKAGE_MSG CallAuthenticationPackage
LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG LookupAuthenticationPackage
struct _LSA_CALL_AUTHENTICATION_PACKAGE_MSG::@3507::@3510 Reply
struct _LSA_CALL_AUTHENTICATION_PACKAGE_MSG::@3507::@3509 Request
struct _LSA_LOGON_USER_MSG::@3503::@3506 Reply
struct _LSA_LOGON_USER_MSG::@3503::@3505 Request
struct _LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG::@3515::@3517 Request
struct _LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG::@3515::@3518 Reply
PSAMPR_SID_INFORMATION Sids
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
__kernel_entry NTSTATUS NTAPI NtCreateToken(_Out_ PHANDLE TokenHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ TOKEN_TYPE TokenType, _In_ PLUID AuthenticationId, _In_ PLARGE_INTEGER ExpirationTime, _In_ PTOKEN_USER TokenUser, _In_ PTOKEN_GROUPS TokenGroups, _In_ PTOKEN_PRIVILEGES TokenPrivileges, _In_opt_ PTOKEN_OWNER TokenOwner, _In_ PTOKEN_PRIMARY_GROUP TokenPrimaryGroup, _In_opt_ PTOKEN_DEFAULT_DACL TokenDefaultDacl, _In_ PTOKEN_SOURCE TokenSource)
Creates an access token.
#define RtlCopyMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INSUFFICIENT_RESOURCES
struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
BOOL Privilege(LPTSTR pszPrivilege, BOOL bEnable)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
#define DUPLICATE_SAME_ACCESS
#define DUPLICATE_CLOSE_SOURCE
#define RtlEqualLuid(Luid1, Luid2)
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
struct _TOKEN_PRIVILEGES TOKEN_PRIVILEGES
#define SECURITY_STATIC_TRACKING
struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES
struct _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES
#define SE_PRIVILEGE_ENABLED
#define SE_PRIVILEGE_ENABLED_BY_DEFAULT
struct _TOKEN_GROUPS TOKEN_GROUPS
#define SECURITY_DYNAMIC_TRACKING