LSA_SECPKG_FUNCTION_TABLE 구조체(ntsecpkg.h)
LSA_SECPKG_FUNCTION_TABLE 구조에는 보안 패키지에서 호출할 수 있는 LSA 함수에 대한 포인터가 포함되어 있습니다. LSA( 로컬 보안 기관 )는 패키지의 SpInitialize 함수를 호출할 때 이 구조를 보안 패키지에 전달합니다.
구문
typedef struct _LSA_SECPKG_FUNCTION_TABLE {
PLSA_CREATE_LOGON_SESSION CreateLogonSession;
PLSA_DELETE_LOGON_SESSION DeleteLogonSession;
PLSA_ADD_CREDENTIAL AddCredential;
PLSA_GET_CREDENTIALS GetCredentials;
PLSA_DELETE_CREDENTIAL DeleteCredential;
PLSA_ALLOCATE_LSA_HEAP AllocateLsaHeap;
PLSA_FREE_LSA_HEAP FreeLsaHeap;
PLSA_ALLOCATE_CLIENT_BUFFER AllocateClientBuffer;
PLSA_FREE_CLIENT_BUFFER FreeClientBuffer;
PLSA_COPY_TO_CLIENT_BUFFER CopyToClientBuffer;
PLSA_COPY_FROM_CLIENT_BUFFER CopyFromClientBuffer;
PLSA_IMPERSONATE_CLIENT ImpersonateClient;
PLSA_UNLOAD_PACKAGE UnloadPackage;
PLSA_DUPLICATE_HANDLE DuplicateHandle;
PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS SaveSupplementalCredentials;
PLSA_CREATE_THREAD CreateThread;
PLSA_GET_CLIENT_INFO GetClientInfo;
PLSA_REGISTER_NOTIFICATION RegisterNotification;
PLSA_CANCEL_NOTIFICATION CancelNotification;
PLSA_MAP_BUFFER MapBuffer;
PLSA_CREATE_TOKEN CreateToken;
PLSA_AUDIT_LOGON AuditLogon;
PLSA_CALL_PACKAGE CallPackage;
PLSA_FREE_LSA_HEAP FreeReturnBuffer;
PLSA_GET_CALL_INFO GetCallInfo;
PLSA_CALL_PACKAGEEX CallPackageEx;
PLSA_CREATE_SHARED_MEMORY CreateSharedMemory;
PLSA_ALLOCATE_SHARED_MEMORY AllocateSharedMemory;
PLSA_FREE_SHARED_MEMORY FreeSharedMemory;
PLSA_DELETE_SHARED_MEMORY DeleteSharedMemory;
PLSA_OPEN_SAM_USER OpenSamUser;
PLSA_GET_USER_CREDENTIALS GetUserCredentials;
PLSA_GET_USER_AUTH_DATA GetUserAuthData;
PLSA_CLOSE_SAM_USER CloseSamUser;
PLSA_CONVERT_AUTH_DATA_TO_TOKEN ConvertAuthDataToToken;
PLSA_CLIENT_CALLBACK ClientCallback;
PLSA_UPDATE_PRIMARY_CREDENTIALS UpdateCredentials;
PLSA_GET_AUTH_DATA_FOR_USER GetAuthDataForUser;
PLSA_CRACK_SINGLE_NAME CrackSingleName;
PLSA_AUDIT_ACCOUNT_LOGON AuditAccountLogon;
PLSA_CALL_PACKAGE_PASSTHROUGH CallPackagePassthrough;
CredReadFn *CrediRead;
CredReadDomainCredentialsFn *CrediReadDomainCredentials;
CredFreeCredentialsFn *CrediFreeCredentials;
PLSA_PROTECT_MEMORY DummyFunction1;
PLSA_PROTECT_MEMORY DummyFunction2;
PLSA_PROTECT_MEMORY DummyFunction3;
PLSA_PROTECT_MEMORY LsaProtectMemory;
PLSA_PROTECT_MEMORY LsaUnprotectMemory;
PLSA_OPEN_TOKEN_BY_LOGON_ID OpenTokenByLogonId;
PLSA_EXPAND_AUTH_DATA_FOR_DOMAIN ExpandAuthDataForDomain;
PLSA_ALLOCATE_PRIVATE_HEAP AllocatePrivateHeap;
PLSA_FREE_PRIVATE_HEAP FreePrivateHeap;
PLSA_CREATE_TOKEN_EX CreateTokenEx;
CredWriteFn *CrediWrite;
CrediUnmarshalandDecodeStringFn *CrediUnmarshalandDecodeString;
PLSA_PROTECT_MEMORY DummyFunction4;
PLSA_PROTECT_MEMORY DummyFunction5;
PLSA_PROTECT_MEMORY DummyFunction6;
PLSA_GET_EXTENDED_CALL_FLAGS GetExtendedCallFlags;
PLSA_DUPLICATE_HANDLE DuplicateTokenHandle;
PLSA_GET_SERVICE_ACCOUNT_PASSWORD GetServiceAccountPassword;
PLSA_PROTECT_MEMORY DummyFunction7;
PLSA_AUDIT_LOGON_EX AuditLogonEx;
PLSA_CHECK_PROTECTED_USER_BY_TOKEN CheckProtectedUserByToken;
PLSA_QUERY_CLIENT_REQUEST QueryClientRequest;
PLSA_GET_APP_MODE_INFO GetAppModeInfo;
PLSA_SET_APP_MODE_INFO SetAppModeInfo;
PLSA_GET_CLIENT_INFO_EX GetClientInfoEx;
} LSA_SECPKG_FUNCTION_TABLE, *PLSA_SECPKG_FUNCTION_TABLE;
멤버
CreateLogonSession
CreateLogonSession 함수에 대한 포인터입니다.
DeleteLogonSession
DeleteLogonSession 함수에 대한 포인터입니다.
AddCredential
AddCredential 함수에 대한 포인터입니다.
GetCredentials
DeleteCredential
DeleteCredential 함수에 대한 포인터입니다.
AllocateLsaHeap
AllocateLsaHeap 함수에 대한 포인터입니다.
FreeLsaHeap
FreeLsaHeap 함수에 대한 포인터입니다.
AllocateClientBuffer
AllocateClientBuffer 함수에 대한 포인터입니다.
FreeClientBuffer
FreeClientBuffer 함수에 대한 포인터입니다.
CopyToClientBuffer
CopyToClientBuffer 함수에 대한 포인터입니다.
CopyFromClientBuffer
CopyFromClientBuffer 함수에 대한 포인터입니다.
ImpersonateClient
ImpersonateClient 함수에 대한 포인터입니다.
UnloadPackage
UnloadPackage 함수에 대한 포인터입니다.
DuplicateHandle
DuplicateHandle 함수에 대한 포인터입니다.
SaveSupplementalCredentials
SaveSupplementalCredentials 함수에 대한 포인터입니다.
CreateThread
CreateThread 함수에 대한 포인터입니다.
GetClientInfo
GetClientInfo 함수에 대한 포인터입니다.
RegisterNotification
RegisterNotification 함수에 대한 포인터입니다.
CancelNotification
CancelNotification 함수에 대한 포인터입니다.
MapBuffer
MapBuffer 함수에 대한 포인터입니다.
CreateToken
CreateToken 함수에 대한 포인터입니다.
AuditLogon
AuditLogon 함수에 대한 포인터입니다.
CallPackage
CallPackage 함수에 대한 포인터입니다.
FreeReturnBuffer
FreeReturnBuffer 함수에 대한 포인터입니다.
GetCallInfo
GetCallInfo 함수에 대한 포인터입니다.
CallPackageEx
CallPackageEx 함수에 대한 포인터입니다.
CreateSharedMemory
CreateSharedMemory 함수에 대한 포인터입니다.
AllocateSharedMemory
AllocateSharedMemory 함수에 대한 포인터입니다.
FreeSharedMemory
FreeSharedMemory 함수에 대한 포인터입니다.
DeleteSharedMemory
DeleteSharedMemory 함수에 대한 포인터입니다.
OpenSamUser
OpenSamUser 함수에 대한 포인터입니다.
GetUserCredentials
GetUserCredentials 함수에 대한 포인터입니다.
GetUserAuthData
GetUserAuthData 함수에 대한 포인터입니다.
CloseSamUser
CloseSamUser 함수에 대한 포인터입니다.
ConvertAuthDataToToken
ConvertAuthDataToToken 함수에 대한 포인터입니다.
ClientCallback
ClientCallback 함수에 대한 포인터입니다.
UpdateCredentials
UpdateCredentials 함수에 대한 포인터입니다.
GetAuthDataForUser
GetAuthDataForUser 함수에 대한 포인터입니다.
CrackSingleName
CrackSingleName 함수에 대한 포인터입니다.
AuditAccountLogon
AuditAccountLogon 함수에 대한 포인터입니다.
CallPackagePassthrough
CallPackagePassthrough 함수에 대한 포인터입니다.
CrediRead
CrediRead 함수에 대한 포인터입니다.
CrediReadDomainCredentials
CrediReadDomainCredentials 함수에 대한 포인터입니다.
CrediFreeCredentials
CrediFreeCredentials 함수에 대한 포인터입니다.
DummyFunction1
DummyFunction2
DummyFunction3
LsaProtectMemory
LsaProtectMemory 함수에 대한 포인터입니다.
LsaUnprotectMemory
LsaUnprotectMemory 함수에 대한 포인터입니다.
OpenTokenByLogonId
OpenTokenByLogonId 함수에 대한 포인터입니다.
ExpandAuthDataForDomain
ExpandAuthDataForDomain 함수에 대한 포인터입니다.
AllocatePrivateHeap
AllocatePrivateHeap 함수에 대한 포인터입니다.
FreePrivateHeap
FreePrivateHeap 함수에 대한 포인터입니다.
CreateTokenEx
CreateTokenEx 함수에 대한 포인터입니다.
CrediWrite
CrediWrite 함수에 대한 포인터입니다.
CrediUnmarshalandDecodeString
CrediUnmarshalandDecodeString 함수에 대한 포인터입니다.
Windows Server 2003 및 Windows XP: 이 함수는 구현되지 않습니다.
DummyFunction4
DummyFunction5
DummyFunction6
내부 Microsoft용으로만 Windows 8 이상에 도입되었습니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 함수는 구현되지 않습니다.
GetExtendedCallFlags
GetExtendedCallFlags 함수에 대한 포인터입니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 함수는 구현되지 않습니다.
DuplicateTokenHandle
DuplicateTokenHandle 함수에 대한 포인터입니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 함수는 구현되지 않습니다.
GetServiceAccountPassword
GetServiceAccountPassword 함수에 대한 포인터입니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 함수는 구현되지 않습니다.
DummyFunction7
내부 Microsoft용으로만 Windows 8 이상에 도입되었습니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 함수는 구현되지 않습니다.
AuditLogonEx
AuditLogonEx 함수에 대한 포인터입니다.
CheckProtectedUserByToken
CheckProtectedUserByToken 함수에 대한 포인터입니다.
QueryClientRequest
QueryClientRequest 함수에 대한 포인터입니다.
GetAppModeInfo
GetAppModeInfo 함수에 대한 포인터입니다.
SetAppModeInfo
SetAppModeInfo 함수에 대한 포인터입니다.
GetClientInfoEx
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | ntsecpkg.h |