264 lines
4.9 KiB
C++
264 lines
4.9 KiB
C++
/*++
|
|
|
|
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
|
|
IISLogonDigestUserA(
|
|
PDIGEST_LOGON_INFO pDigestLogonInfo,
|
|
DWORD dwAlgo,
|
|
HANDLE * phToken
|
|
);
|
|
|
|
|
|
|
|
#endif // _LONSI_HXX_
|
|
|