|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name: lonsi.hxx
Abstract: This file declares lonsi related stuff
Author: Johnson Apacible (johnsona) 13-Nov-1996
--*/
#ifndef _LONSI_HXX_
#define _LONSI_HXX_
extern "C" { #include <ntlsa.h>
}
typedef BOOL (*LOGON32_INITIALIZE_FN)( IN PVOID hMod, IN ULONG Reason, IN PCONTEXT Context );
typedef BOOL (WINAPI *LOGON_NET_USER_W_FN)( PWSTR lpszUsername, PWSTR lpszDomain, PSTR lpszPassword, PWSTR lpszWorkstation, DWORD dwSubAuth, DWORD dwLogonType, DWORD dwLogonProvider, HANDLE * phToken, LARGE_INTEGER * pExpiry );
typedef BOOL (WINAPI *LOGON_NET_USER_A_FN)( PSTR lpszUsername, PSTR lpszDomain, PSTR lpszPassword, PSTR lpszWorkstation, DWORD dwSubAuth, DWORD dwLogonType, DWORD dwLogonProvider, HANDLE * phToken, LARGE_INTEGER * pExpiry );
typedef BOOL (WINAPI *NET_USER_COOKIE_A_FN)( LPSTR lpszUsername, DWORD dwSeed, LPSTR lpszCookieBuff, DWORD dwBuffSize );
typedef struct _DIGEST_LOGON_INFO { LPSTR pszNtUser; LPSTR pszDomain; LPSTR pszUser; LPSTR pszRealm; LPSTR pszURI; LPSTR pszMethod; LPSTR pszNonce; LPSTR pszCurrentNonce; LPSTR pszCNonce; LPSTR pszQOP; LPSTR pszNC; LPSTR pszResponse; } DIGEST_LOGON_INFO, *PDIGEST_LOGON_INFO;
typedef BOOL (WINAPI *LOGON_DIGEST_USER_A_FN)( PDIGEST_LOGON_INFO pDigestLogonInfo, DWORD dwAlgo, HANDLE * phToken );
typedef BOOL (*GET_DEFAULT_DOMAIN_NAME_FN)(PCHAR,DWORD);
typedef NTSTATUS (NTAPI *LSA_OPEN_POLICY_FN)( IN PLSA_UNICODE_STRING SystemName OPTIONAL, IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK DesiredAccess, IN OUT PLSA_HANDLE PolicyHandle );
typedef NTSTATUS (NTAPI *LSA_RETRIEVE_PRIVATE_DATA_FN)( IN LSA_HANDLE PolicyHandle, IN PLSA_UNICODE_STRING KeyName, OUT PLSA_UNICODE_STRING * PrivateData );
typedef NTSTATUS (NTAPI *LSA_STORE_PRIVATE_DATA_FN)( IN LSA_HANDLE PolicyHandle, IN PLSA_UNICODE_STRING KeyName, IN PLSA_UNICODE_STRING PrivateData );
typedef ULONG (NTAPI *LSA_NT_STATUS_TO_WIN_ERROR_FN)( NTSTATUS Status );
typedef NTSTATUS (NTAPI *LSA_FREE_MEMORY_FN)( IN PVOID Buffer );
typedef NTSTATUS (NTAPI *LSA_CLOSE_FN)( IN LSA_HANDLE ObjectHandle );
//
// advapi32.dll
//
typedef BOOL (WINAPI *DUPLICATE_TOKEN_EX_FN)( HANDLE hExistingToken, DWORD dwDesiredAccess, LPSECURITY_ATTRIBUTES lpTokenAttributes, SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, TOKEN_TYPE TokenType, PHANDLE phNewToken );
BOOL GetDynamicEntryPoints( VOID );
VOID FreeDynamicLibraries( VOID );
dllexp BOOL IISDuplicateTokenEx( IN HANDLE hExistingToken, IN DWORD dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpTokenAttributes, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, IN TOKEN_TYPE TokenType, OUT PHANDLE phNewToken );
//
// netapi32 entry points
//
typedef NET_API_STATUS (NET_API_FUNCTION *NET_USER_MODALS_GET_FN)( IN LPCWSTR servername OPTIONAL, IN DWORD level, OUT LPBYTE *bufptr );
typedef NET_API_STATUS (NET_API_FUNCTION *NET_API_BUFFER_FREE_FN)( IN LPVOID Buffer );
//
// kernel32
//
typedef LONG (WINAPI *INTERLOCKED_EXCHANGE_ADD_FN)( LPLONG Addend, LONG Value );
typedef PVOID (WINAPI *INTERLOCKED_COMPARE_EXCHANGE_FN)( PVOID *Destination, PVOID Exchange, PVOID Comperand );
typedef BOOL (WINAPI *READ_DIR_CHANGES_W_FN)( HANDLE hDirectory, LPVOID lpBuffer, DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine );
typedef LONG (WINAPI *INTERLOCKED_INCREMENT_FN)( LPLONG Addend );
typedef LONG (WINAPI *INTERLOCKED_DECREMENT_FN)( LPLONG Addend );
extern READ_DIR_CHANGES_W_FN pfnReadDirChangesW; extern INTERLOCKED_COMPARE_EXCHANGE_FN pfnInterlockedCompareExchange; extern INTERLOCKED_EXCHANGE_ADD_FN pfnInterlockedExchangeAdd; extern INTERLOCKED_INCREMENT_FN pfnInterlockedIncrement; extern INTERLOCKED_DECREMENT_FN pfnInterlockedDecrement;
BOOL IISGetDefaultDomainName( CHAR * pszDomainName, DWORD cchDomainName );
BOOL WINAPI IISNetUserCookieA( LPSTR pszUsername, DWORD dwSeed, LPSTR pszCookieBuff, DWORD dwBuffSize );
BOOL WINAPI IISLogonNetUserA( PSTR pszUsername, PSTR pszDomain, PSTR pszPassword, PSTR pszWorkstation, DWORD dwSubAuth, DWORD dwLogonType, DWORD dwLogonProvider, HANDLE * phToken, LARGE_INTEGER * pExpiry );
BOOL WINAPI IISLogonDigestUserA( PDIGEST_LOGON_INFO pDigestLogonInfo, DWORD dwAlgo, HANDLE * phToken );
BOOL WINAPI IISLogonDigestUser( WCHAR * pszUserName, WCHAR * pszDomainName, WCHAR * pszPassword, HANDLE * phToken );
BOOL WINAPI IISLogonPassportUserW( WCHAR * pszUserName, WCHAR * pszDomainName, HANDLE * phToken );
#endif // _LONSI_HXX_
|