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;
553 TRACE(
"(%p %p)\n", RequestMsg, LogonContext);
561 TRACE(
"LsapGetAuthenticationPackage() failed to find a package\n");
570 if (LocalBuffer ==
NULL)
582 TRACE(
"NtReadVirtualMemory() failed (Status 0x%08lx)\n",
Status);
606 TRACE(
"Package->LsaApCallPackage() failed (Status 0x%08lx)\n",
Status);
609 if (LocalBuffer !=
NULL)
624 ULONG LocalGroupsLength = 0;
626 ULONG SidHeaderLength = 0;
630 ULONG AllocatedSids = 0;
641 TRACE(
"RtlAllocateHeap() failed\n");
658 if (SidHeader ==
NULL)
664 for (
i = 0;
i < ClientGroupsCount;
i++)
677 TRACE(
"Sid %lu: Length %lu\n",
i, SidLength);
706 if (SidHeader !=
NULL)
713 for (
i = 0;
i < AllocatedSids;
i++)
752 ERR(
"Group buffer allocation failed!\n");
783 ERR(
"Group buffer allocation failed!\n");
800 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
831 ERR(
"Group buffer allocation failed!\n");
856 ERR(
"Group buffer allocation failed!\n");
922 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
945 ERR(
"Group SID creation failed!\n");
957 ERR(
"Group buffer allocation failed!\n");
964 Groups->Groups[0].Attributes =
971 for (
i = 0;
i < (*TokenGroups)->GroupCount;
i++)
986 ERR(
"Group buffer allocation failed!\n");
990 Groups->GroupCount = (*TokenGroups)->GroupCount;
992 for (
i = 0;
i < (*TokenGroups)->GroupCount;
i++)
994 Groups->Groups[
i].Sid = (*TokenGroups)->Groups[
i].Sid;
995 Groups->Groups[
i].Attributes = (*TokenGroups)->Groups[
i].Attributes;
1054 TRACE(
"SamIConnect failed (Status %08lx)\n",
Status);
1061 &BuiltinDomainHandle);
1064 TRACE(
"SamrOpenDomain failed (Status %08lx)\n",
Status);
1071 &AccountDomainHandle);
1074 TRACE(
"SamrOpenDomain failed (Status %08lx)\n",
Status);
1080 &BuiltinMembership);
1083 TRACE(
"SamrGetAliasMembership failed (Status %08lx)\n",
Status);
1089 &AccountMembership);
1092 TRACE(
"SamrGetAliasMembership failed (Status %08lx)\n",
Status);
1096 TRACE(
"Builtin Memberships: %lu\n", BuiltinMembership.
Count);
1097 for (
i = 0;
i < BuiltinMembership.
Count;
i++)
1105 TRACE(
"LsapAppendSidToGroups failed (Status %08lx)\n",
Status);
1110 TRACE(
"Account Memberships: %lu\n", AccountMembership.
Count);
1111 for (
i = 0;
i < AccountMembership.
Count;
i++)
1119 TRACE(
"LsapAppendSidToGroups failed (Status %08lx)\n",
Status);
1133 if (AccountDomainHandle !=
NULL)
1136 if (BuiltinDomainHandle !=
NULL)
1139 if (ServerHandle !=
NULL)
1252 if (LocalPrivileges ==
NULL)
1261 TokenPrivilegeCount = (*TokenPrivileges)->PrivilegeCount;
1263 for (
i = 0;
i < TokenPrivilegeCount;
i++)
1274 if (LocalPrivileges ==
NULL)
1278 for (
i = 0;
i < TokenPrivilegeCount;
i++)
1280 LocalPrivileges->
Privileges[
i].
Luid = (*TokenPrivileges)->Privileges[
i].Luid;
1401 TRACE(
"LsapLogonUser(%p %p)\n", RequestMsg, LogonContext);
1408 if (Package ==
NULL)
1410 ERR(
"LsapGetAuthenticationPackage() failed to find a package\n");
1420 if (LocalAuthInfo ==
NULL)
1422 ERR(
"RtlAllocateHeap() failed\n");
1434 ERR(
"NtReadVirtualMemory() failed (Status 0x%08lx)\n",
Status);
1435 RtlFreeHeap(RtlGetProcessHeap(), 0, LocalAuthInfo);
1448 ERR(
"LsapCopyLocalGroups failed (Status 0x%08lx)\n",
Status);
1466 &TokenInformationType,
1469 &AuthenticatingAuthority,
1485 &TokenInformationType,
1488 &AuthenticatingAuthority,
1502 &TokenInformationType,
1505 &AuthenticatingAuthority);
1510 ERR(
"LsaApLogonUser/Ex/2 failed (Status 0x%08lx)\n",
Status);
1518 TokenInformationType,
1522 ERR(
"LsapAddLocalGroupsToTokenInfo() failed (Status 0x%08lx)\n",
Status);
1528 TokenInformationType,
1532 ERR(
"LsapAddDefaultGroups() failed (Status 0x%08lx)\n",
Status);
1537 TokenInformationType);
1540 ERR(
"LsapAddSamGroups() failed (Status 0x%08lx)\n",
Status);
1545 TokenInformationType);
1548 ERR(
"LsapSetTokenOwner() failed (Status 0x%08lx)\n",
Status);
1553 TokenInformationType);
1556 ERR(
"LsapAddTokenDefaultDacl() failed (Status 0x%08lx)\n",
Status);
1561 TokenInformationType);
1564 ERR(
"LsapSetPrivileges() failed (Status 0x%08lx)\n",
Status);
1642 ERR(
"NtCreateToken failed (Status 0x%08lx)\n",
Status);
1648 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
1672 ERR(
"LsapSetLogonSessionData failed (Status 0x%08lx)\n",
Status);
1690 ERR(
"NtDuplicateObject failed (Status 0x%08lx)\n",
Status);
1725 if (LocalAuthInfo !=
NULL)
1726 RtlFreeHeap(RtlGetProcessHeap(), 0, LocalAuthInfo);
1729 if (TokenInformation !=
NULL)
1735 if (TokenInfo0 !=
NULL)
1755 if (TokenInfo1 !=
NULL)
1788 FIXME(
"TokenInformationType %d is not supported!\n", TokenInformationType);
1793 if (AccountName !=
NULL)
1802 if (AuthenticatingAuthority !=
NULL)
1819 TRACE(
"LsapLogonUser done (Status 0x%08lx)\n",
Status);
PLSA_FREE_CLIENT_BUFFER FreeClientBuffer
PLSA_COPY_TO_CLIENT_BUFFER CopyToClientBuffer
static NTSTATUS LsapAddDefaultGroups(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType, IN SECURITY_LOGON_TYPE LogonType)
NTSTATUS LsapLogonUser(PLSA_API_MSG RequestMsg, PLSAP_LOGON_CONTEXT LogonContext)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define SAM_SERVER_CONNECT
PLSA_AP_LOGON_TERMINATED LsaApLogonTerminated
struct _LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG::@3458::@3460 Request
PLSA_AP_LOGON_USER_EX2 LsaApLogonUserEx2
#define DUPLICATE_CLOSE_SOURCE
LSA_LOGON_USER_MSG LogonUser
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
PLSA_AP_LOGON_USER_INTERNAL LsaApLogonUser
static NTSTATUS LsapAddSamGroups(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
NTSTATUS __stdcall SamrGetAliasMembership(SAMPR_HANDLE DomainHandle, PSAMPR_PSID_ARRAY SidArray, PSAMPR_ULONG_ARRAY Membership)
struct _LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG::@3458::@3461 Reply
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
LSA_LOOKUP_AUTHENTICATION_PACKAGE_MSG LookupAuthenticationPackage
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
NTSTATUS __stdcall SamrOpenDomain(SAMPR_HANDLE ServerHandle, ACCESS_MASK DesiredAccess, PRPC_SID DomainId, SAMPR_HANDLE *DomainHandle)
#define DOMAIN_GET_ALIAS_MEMBERSHIP
NTSTATUS(NTAPI * PLSA_AP_CALL_PACKAGE_PASSTHROUGH)(PLSA_CLIENT_REQUEST, PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS)
#define CONST_LUID(x1, x2)
struct _LSA_LOGON_USER_MSG::@3446::@3448 Request
struct _LSAP_LOGON_CONTEXT * PLSAP_LOGON_CONTEXT
_LSA_TOKEN_INFORMATION_TYPE
NTSTATUS NTAPI LsapCreateLogonSession(IN PLUID LogonId)
BOOL WINAPI EqualSid(PSID pSid1, PSID pSid2)
wchar_t * PSAMPR_SERVER_NAME
PLSA_GET_CREDENTIALS GetCredentials
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
NTSTATUS LsapSetLogonSessionData(_In_ PLUID LogonId, _In_ ULONG LogonType, _In_ PUNICODE_STRING UserName, _In_ PUNICODE_STRING LogonDomain, _In_ PSID Sid)
struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES
#define STATUS_NO_SUCH_PACKAGE
static NTSTATUS NTAPI LsapFreeClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN PVOID ClientBaseAddress)
NTSTATUS NTAPI LsapDeleteLogonSession(IN PLUID LogonId)
PLSA_FREE_LSA_HEAP FreeLsaHeap
PLSA_ALLOCATE_LSA_HEAP AllocateLsaHeap
static NTSTATUS NTAPI LsapAddAuthPackage(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
_In_ DWORD _Out_ PDWORD _In_opt_ PCSTR MachineName
HANDLE ClientProcessHandle
NTSTATUS LsapCallAuthenticationPackage(PLSA_API_MSG RequestMsg, PLSAP_LOGON_CONTEXT LogonContext)
struct _LSA_CALL_AUTHENTICATION_PACKAGE_MSG::@3450::@3452 Request
VOID NTAPI LsaIFree_LSAPR_PRIVILEGE_SET(IN PLSAPR_PRIVILEGE_SET Ptr)
struct _LSA_TOKEN_INFORMATION_V1 LSA_TOKEN_INFORMATION_V1
#define RTL_REGISTRY_CONTROL
NTSTATUS WINAPI LsarEnumeratePrivilegesAccount(LSAPR_HANDLE AccountHandle, PLSAPR_PRIVILEGE_SET *Privileges)
#define InsertTailList(ListHead, Entry)
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL, DWORD, DWORD, PSID)
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS LocalGroups
TOpcodeData Groups[17][8]
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
static NTSTATUS LsapSetTokenOwner(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
struct _LSA_TOKEN_INFORMATION_V1 * PLSA_TOKEN_INFORMATION_V1
PLSA_AP_LOGON_USER_EX LsaApLogonUserEx
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode
static NTSTATUS LsapCopyLocalGroups(IN PLSAP_LOGON_CONTEXT LogonContext, IN PTOKEN_GROUPS ClientGroups, IN ULONG ClientGroupsCount, OUT PTOKEN_GROUPS *TokenGroups)
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
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 *)
static LIST_ENTRY PackageListHead
NTSTATUS NTAPI SamIConnect(PSAMPR_SERVER_NAME ServerName, SAMPR_HANDLE *ServerHandle, ACCESS_MASK DesiredAccess, BOOLEAN Trusted)
return STATUS_NOT_IMPLEMENTED
struct _MSV1_0_INTERACTIVE_LOGON * PMSV1_0_INTERACTIVE_LOGON
static NTSTATUS LsapAddLocalGroups(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType, IN PTOKEN_GROUPS LocalGroups)
#define SE_PRIVILEGE_ENABLED
PVOID NTAPI LsapAllocateHeapZero(IN ULONG Length)
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)
#define DUPLICATE_SAME_ACCESS
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct LSA_DISPATCH_TABLE * PLSA_DISPATCH_TABLE
PLSA_AP_CALL_PACKAGE_PASSTHROUGH LsaApCallPackagePassthrough
PVOID(NTAPI * PLSA_ALLOCATE_LSA_HEAP)(ULONG)
#define RtlEqualLuid(Luid1, Luid2)
PLSA_CREATE_LOGON_SESSION CreateLogonSession
struct LSA_DISPATCH_TABLE LSA_DISPATCH_TABLE
#define SE_CREATE_GLOBAL_PRIVILEGE
NTSTATUS NTAPI LdrGetProcedureAddress(IN PVOID BaseAddress, IN PANSI_STRING Name, IN ULONG Ordinal, OUT PVOID *ProcedureAddress)
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
struct _TOKEN_PRIVILEGES TOKEN_PRIVILEGES
PVOID NTAPI LsapAllocateHeap(IN ULONG Length)
#define SE_GROUP_ENABLED_BY_DEFAULT
enum _LSA_TOKEN_INFORMATION_TYPE * PLSA_TOKEN_INFORMATION_TYPE
#define SAM_SERVER_LOOKUP_DOMAIN
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
struct _SAMPR_SID_INFORMATION SAMPR_SID_INFORMATION
NTSTATUS WINAPI LsarOpenAccount(LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, ACCESS_MASK DesiredAccess, LSAPR_HANDLE *AccountHandle)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
NTSTATUS(NTAPI * PLSA_COPY_TO_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, ULONG, PVOID, PVOID)
#define NtCurrentProcess()
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
NTSTATUS(NTAPI * PLSA_AP_INITIALIZE_PACKAGE)(ULONG, PLSA_DISPATCH_TABLE, PLSA_STRING, PLSA_STRING, PLSA_STRING *)
VOID NTAPI LsapFreeHeap(IN PVOID Base)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
NTSTATUS LsapInitAuthPackages(VOID)
#define SE_CHANGE_NOTIFY_PRIVILEGE
NTSTATUS NTAPI LsapAddCredential(_In_ PLUID LogonId, _In_ ULONG AuthenticationPackage, _In_ PLSA_STRING PrimaryKeyValue, _In_ PLSA_STRING Credential)
struct _LIST_ENTRY * Flink
#define SE_PRIVILEGE_ENABLED_BY_DEFAULT
PLSA_DELETE_CREDENTIAL DeleteCredential
static NTSTATUS LsapAppendSidToGroups(IN PTOKEN_GROUPS *TokenGroups, IN PSID DomainSid, IN ULONG RelativeId)
NTSTATUS(NTAPI * PLSA_CREATE_LOGON_SESSION)(PLUID)
static NTSTATUS NTAPI LsapCopyFromClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG Length, IN PVOID BufferToCopy, IN PVOID ClientBaseAddress)
struct _LSA_TOKEN_INFORMATION_NULL * PLSA_TOKEN_INFORMATION_NULL
PSID LsapAdministratorsSid
static NTSTATUS LsapAddTokenDefaultDacl(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
#define NT_SUCCESS(StatCode)
PVOID PLSA_CLIENT_REQUEST
PLSA_AP_CALL_PACKAGE_UNTRUSTED LsaApCallPackageUntrusted
struct _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES
NTSTATUS(NTAPI * PLSA_AP_CALL_PACKAGE_UNTRUSTED)(PLSA_CLIENT_REQUEST, PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS)
struct _SAMPR_PSID_ARRAY SAMPR_PSID_ARRAY
_In_ GUID _In_ PVOID ValueData
PSAMPR_SID_INFORMATION Sids
NTSTATUS(NTAPI * PLSA_ALLOCATE_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, ULONG, PVOID *)
#define _strnicmp(_String1, _String2, _MaxCount)
static const LUID SeChangeNotifyPrivilege
BOOL Privilege(LPTSTR pszPrivilege, BOOL bEnable)
static NTSTATUS LsapAddPrivilegeToTokenPrivileges(PTOKEN_PRIVILEGES *TokenPrivileges, PLSAPR_LUID_AND_ATTRIBUTES Privilege)
#define SE_GROUP_MANDATORY
NTSTATUS NTAPI NtReadVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, OUT PVOID Buffer, IN SIZE_T NumberOfBytesToRead, OUT PSIZE_T NumberOfBytesRead OPTIONAL)
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET * Privileges
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
PLSA_DELETE_LOGON_SESSION DeleteLogonSession
static const LUID SeCreateGlobalPrivilege
NTSTATUS WINAPI LsarClose(LSAPR_HANDLE *ObjectHandle)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
PLSA_COPY_FROM_CLIENT_BUFFER CopyFromClientBuffer
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL Dacl
struct _LSA_LOGON_USER_MSG::@3446::@3449 Reply
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)
#define SECURITY_DYNAMIC_TRACKING
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_FREE_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, PVOID)
__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)
NTSTATUS NTAPI DECLSPEC_HOTPATCH LdrLoadDll(IN PWSTR SearchPath OPTIONAL, IN PULONG DllCharacteristics OPTIONAL, IN PUNICODE_STRING DllName, OUT PVOID *BaseAddress)
PLSA_ADD_CREDENTIAL AddCredential
NTSTATUS(NTAPI * PLSA_GET_CREDENTIALS)(PLUID, ULONG, PULONG, BOOLEAN, PLSA_STRING, PULONG, PLSA_STRING)
struct _TOKEN_GROUPS TOKEN_GROUPS
enum _LSA_TOKEN_INFORMATION_TYPE LSA_TOKEN_INFORMATION_TYPE
struct _LSA_CALL_AUTHENTICATION_PACKAGE_MSG::@3450::@3453 Reply
struct _AUTH_PACKAGE * PAUTH_PACKAGE
LSA_CALL_AUTHENTICATION_PACKAGE_MSG CallAuthenticationPackage
NTSTATUS LsapLookupAuthenticationPackage(PLSA_API_MSG RequestMsg, PLSAP_LOGON_CONTEXT LogonContext)
#define SE_IMPERSONATE_PRIVILEGE
NTSTATUS(NTAPI * PLSA_AP_CALL_PACKAGE_INTERNAL)(PLSA_CLIENT_REQUEST, PVOID, PVOID, ULONG, PVOID *, PULONG, PNTSTATUS)
NTSTATUS NTAPI LdrUnloadDll(IN PVOID BaseAddress)
VOID NTAPI SamIFree_SAMPR_ULONG_ARRAY(PSAMPR_ULONG_ARRAY Ptr)
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)
PLSA_ALLOCATE_CLIENT_BUFFER AllocateClientBuffer
PLSA_AP_INITIALIZE_PACKAGE LsaApInitializePackage
struct _LSA_TOKEN_INFORMATION_NULL LSA_TOKEN_INFORMATION_NULL
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
VOID(NTAPI * PLSA_AP_LOGON_TERMINATED)(PLUID)
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE LogonType
struct _SAMPR_PSID_ARRAY * PSAMPR_PSID_ARRAY
#define InitializeListHead(ListHead)
NTSTATUS(NTAPI * PLSA_ADD_CREDENTIAL)(PLUID, ULONG, PLSA_STRING, PLSA_STRING)
#define DUPLICATE_SAME_ATTRIBUTES
enum _SECURITY_LOGON_TYPE SECURITY_LOGON_TYPE
static NTSTATUS LsapSetPrivileges(IN PVOID TokenInformation, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType)
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]
static LSA_DISPATCH_TABLE DispatchTable
#define SECURITY_STATIC_TRACKING
PLSA_AP_CALL_PACKAGE_INTERNAL LsaApCallPackage
NTSTATUS __stdcall SamrCloseHandle(SAMPR_HANDLE *SamHandle)
struct _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
VOID(NTAPI * PLSA_FREE_LSA_HEAP)(PVOID)
struct _LSA_STRING * PLSA_STRING
NTSTATUS WINAPI LsarOpenPolicy(LPWSTR SystemName, PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, ACCESS_MASK DesiredAccess, LSAPR_HANDLE *PolicyHandle)
NTSTATUS(NTAPI * PLSA_DELETE_LOGON_SESSION)(PLUID)
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]
static NTSTATUS NTAPI LsapCopyToClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG Length, IN PVOID ClientBaseAddress, IN PVOID BufferToCopy)
PSID LsapAppendRidToSid(PSID SrcSid, ULONG Rid)
static PAUTH_PACKAGE LsapGetAuthenticationPackage(IN ULONG PackageId)
NTSTATUS(NTAPI * PLSA_DELETE_CREDENTIAL)(PLUID, ULONG, PLSA_STRING)
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)
NTSTATUS NTAPI LsapDeleteCredential(_In_ PLUID LogonId, _In_ ULONG AuthenticationPackage, _In_ PLSA_STRING PrimaryKeyValue)
#define RtlCopyMemory(Destination, Source, Length)
struct _AUTH_PACKAGE AUTH_PACKAGE
NTSTATUS NTAPI NtWriteVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN PVOID Buffer, IN SIZE_T NumberOfBytesToWrite, OUT PSIZE_T NumberOfBytesWritten OPTIONAL)
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
NTSTATUS(NTAPI * PLSA_COPY_FROM_CLIENT_BUFFER)(PLSA_CLIENT_REQUEST, ULONG, PVOID, PVOID)
base of all file and directory entries
NTSYSAPI BOOLEAN NTAPI RtlEqualSid(_In_ PSID Sid1, _In_ PSID Sid2)
struct _SAMPR_SID_INFORMATION * PSAMPR_SID_INFORMATION
NTSYSAPI ULONG NTAPI RtlLengthRequiredSid(IN ULONG SubAuthorityCount)
static const LUID SeImpersonatePrivilege
NTSTATUS NTAPI NtFreeVirtualMemory(IN HANDLE ProcessHandle, IN PVOID *UBaseAddress, IN PSIZE_T URegionSize, IN ULONG FreeType)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
static NTSTATUS NTAPI LsapAllocateClientBuffer(IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG LengthRequired, OUT PVOID *ClientBaseAddress)