You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
221 lines
4.0 KiB
221 lines
4.0 KiB
/*++
|
|
|
|
Copyright (c) 2001 Microsoft Corporation
|
|
All rights reserved
|
|
|
|
Module Name:
|
|
|
|
lsasspi.hxx
|
|
|
|
Abstract:
|
|
|
|
lsa sspi
|
|
|
|
Author:
|
|
|
|
Larry Zhu (LZhu) December 1, 2001 Created
|
|
|
|
Environment:
|
|
|
|
User Mode -Win32
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#ifndef LSASSPI_HXX
|
|
#define LSASSPI_HXX
|
|
|
|
/*
|
|
|
|
include ntsecapi.h before this header file
|
|
|
|
#include <ntsecapi.h>
|
|
|
|
*/
|
|
|
|
PCSTR
|
|
LogonType2Str(
|
|
IN ULONG LogonType
|
|
);
|
|
|
|
PCSTR
|
|
ImpLevel2Str(
|
|
IN ULONG Level
|
|
);
|
|
|
|
NTSTATUS
|
|
GetLsaHandleAndPackageId(
|
|
IN PCSTR pszPackageNameA,
|
|
OUT HANDLE* pLsaHandle,
|
|
OUT ULONG* pPackageId
|
|
);
|
|
|
|
NTSTATUS
|
|
GetLsaHandleAndPackageIdEx(
|
|
IN PCSTR pszPackageNameA,
|
|
OUT HANDLE* pLsaHandle,
|
|
OUT ULONG* pPackageId,
|
|
OUT BOOLEAN* pbWasTcbPrivEnabled,
|
|
OUT BOOLEAN* pbIsImpersonating
|
|
);
|
|
|
|
NTSTATUS
|
|
GetSystemToken(
|
|
OUT HANDLE* phSystemToken
|
|
);
|
|
|
|
NTSTATUS
|
|
FindAndOpenWinlogon(
|
|
OUT HANDLE* phWinlogon
|
|
);
|
|
|
|
HRESULT
|
|
CreateProcessAsUserEx(
|
|
IN HANDLE hToken,
|
|
IN UNICODE_STRING* pApplication
|
|
);
|
|
|
|
NTSTATUS
|
|
Impersonate(
|
|
IN OPTIONAL HANDLE hToken
|
|
);
|
|
|
|
HRESULT
|
|
GetProcessToken(
|
|
IN HANDLE hProcess,
|
|
OUT HANDLE* phProcessToken
|
|
);
|
|
|
|
HRESULT
|
|
GetProcessTokenByProcessId(
|
|
IN ULONG ProcessID,
|
|
OUT HANDLE* phToken
|
|
);
|
|
|
|
HRESULT
|
|
GetProcessTokenWithNullDACL(
|
|
IN HANDLE hProcess,
|
|
OUT HANDLE* phProcessToken
|
|
);
|
|
|
|
NTSTATUS
|
|
GetProcessHandleByCid(
|
|
IN ULONG ProcessID,
|
|
OUT HANDLE* phToken
|
|
);
|
|
|
|
NTSTATUS
|
|
CheckUserToken(
|
|
IN HANDLE hToken
|
|
);
|
|
|
|
VOID
|
|
DebugPrintSidFriendlyName(
|
|
IN ULONG Level,
|
|
IN PCSTR pszBanner,
|
|
IN PSID pSid
|
|
);
|
|
|
|
typedef struct _SECURITY_LOGON_SESSION_DATA_OLD {
|
|
ULONG Size;
|
|
LUID LogonId;
|
|
LSA_UNICODE_STRING UserName;
|
|
LSA_UNICODE_STRING LogonDomain;
|
|
LSA_UNICODE_STRING AuthenticationPackage;
|
|
ULONG LogonType;
|
|
ULONG Session;
|
|
PSID Sid;
|
|
LARGE_INTEGER LogonTime;
|
|
} SECURITY_LOGON_SESSION_DATA_OLD, * PSECURITY_LOGON_SESSION_DATA_OLD;
|
|
|
|
VOID
|
|
DebugPrintLogonSessionData(
|
|
IN ULONG Level,
|
|
IN SECURITY_LOGON_SESSION_DATA* pLogonSessionData
|
|
);
|
|
|
|
HRESULT
|
|
CheckUserData(
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaGetLogonSessionData)(
|
|
IN PLUID LogonId,
|
|
OUT PSECURITY_LOGON_SESSION_DATA * ppLogonSessionData
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaRegisterLogonProcess)(
|
|
IN PLSA_STRING LogonProcessName,
|
|
OUT PHANDLE LsaHandle,
|
|
OUT PLSA_OPERATIONAL_MODE SecurityMode
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaLookupAuthenticationPackage)(
|
|
IN HANDLE LsaHandle,
|
|
IN PLSA_STRING PackageName,
|
|
OUT PULONG AuthenticationPackage
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaLogonUser)(
|
|
IN HANDLE LsaHandle,
|
|
IN PLSA_STRING OriginName,
|
|
IN SECURITY_LOGON_TYPE LogonType,
|
|
IN ULONG AuthenticationPackage,
|
|
IN PVOID AuthenticationInformation,
|
|
IN ULONG AuthenticationInformationLength,
|
|
IN PTOKEN_GROUPS LocalGroups OPTIONAL,
|
|
IN PTOKEN_SOURCE SourceContext,
|
|
OUT PVOID *ProfileBuffer,
|
|
OUT PULONG ProfileBufferLength,
|
|
OUT PLUID LogonId,
|
|
OUT PHANDLE Token,
|
|
OUT PQUOTA_LIMITS Quotas,
|
|
OUT PNTSTATUS SubStatus
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaFreeReturnBuffer)(
|
|
IN PVOID Buffer
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaConnectUntrusted)(
|
|
OUT PHANDLE LsaHandle
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaDeregisterLogonProcess)(
|
|
IN HANDLE LsaHandle
|
|
);
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(* PFuncLsaCallAuthenticationPackage)(
|
|
IN HANDLE LsaHandle,
|
|
IN ULONG AuthenticationPackage,
|
|
IN PVOID ProtocolSubmitBuffer,
|
|
IN ULONG SubmitBufferLength,
|
|
OUT PVOID* ProtocolReturnBuffer,
|
|
OUT PULONG ReturnBufferLength,
|
|
OUT PNTSTATUS ProtocolStatus
|
|
);
|
|
|
|
FARPROC
|
|
WINAPI
|
|
DelayLoadFailureHook(
|
|
LPCSTR pszDllName,
|
|
LPCSTR pszProcName
|
|
);
|
|
|
|
#endif // #ifndef LSASSPI_HXX
|