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.
276 lines
6.2 KiB
276 lines
6.2 KiB
//---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1995
|
|
//
|
|
// File: globals.hxx
|
|
//
|
|
// Contents:
|
|
//
|
|
// History:
|
|
//----------------------------------------------------------------------------
|
|
extern TCHAR *szProviderName;
|
|
extern TCHAR *szLDAPNamespaceName;
|
|
extern TCHAR *szGCNamespaceName;
|
|
|
|
//
|
|
// List of interface properties for Generic Objects
|
|
//
|
|
extern INTF_PROP_DATA IntfPropsGeneric[];
|
|
extern INTF_PROP_DATA IntfPropsSchema[];
|
|
extern INTF_PROP_DATA IntfPropsConnection[];
|
|
extern INTF_PROP_DATA IntfPropsCursor[];
|
|
extern INTF_PROP_DATA IntfPropsQuery[];
|
|
|
|
HMODULE LoadLibraryHelper(
|
|
LPTSTR pszFileName
|
|
);
|
|
|
|
//
|
|
// Helper routine to split relative url to class and RDN.
|
|
//
|
|
HRESULT
|
|
UrlToClassAndDn(
|
|
IN IUmiURL *pUrl,
|
|
OUT LPWSTR *ppszDN,
|
|
OUT LPWSTR *ppszClass
|
|
);
|
|
|
|
//
|
|
// Helper routine to conver the url to the ldap path.
|
|
//
|
|
HRESULT
|
|
UrlToLDAPPath(
|
|
IN IUmiURL *pURL,
|
|
OUT LPWSTR *ppszLDAPPath,
|
|
OPTIONAL OUT LPWSTR *ppszDn = NULL,
|
|
OPTIONAL OUT LPWSTR *ppszServer = NULL
|
|
);
|
|
|
|
//
|
|
// Helper routine to convert ADsPath to url text in umi format.
|
|
//
|
|
HRESULT
|
|
ADsPathToUmiURL(
|
|
IN LPWSTR ADsPath,
|
|
OUT LPWSTR *ppszUrlTxt
|
|
);
|
|
|
|
//
|
|
// Converts the given hr to the umi hr.
|
|
//
|
|
HRESULT
|
|
MapHrToUmiError(
|
|
IN HRESULT hr
|
|
);
|
|
|
|
//
|
|
// These routine are exported by the router (activeds.dll) and convert
|
|
// binary format security descriptors to IADsSecurityDescriptor and
|
|
// IADsSecurityDescriptor to binary format.
|
|
//
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
#else
|
|
extern
|
|
#endif
|
|
HRESULT
|
|
ConvertSecDescriptorToVariant(
|
|
LPWSTR pszServerName,
|
|
CCredentials& Credentials,
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
VARIANT * pVarSec,
|
|
BOOL fNTDS
|
|
);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
#else
|
|
extern
|
|
#endif
|
|
HRESULT
|
|
ConvertSecurityDescriptorToSecDes(
|
|
LPWSTR pszServerName,
|
|
CCredentials& Credentials,
|
|
IADsSecurityDescriptor FAR * pSecDes,
|
|
PSECURITY_DESCRIPTOR * ppSecurityDescriptor,
|
|
PDWORD pdwSDLength,
|
|
BOOL fNTDSType
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
#else
|
|
extern
|
|
#endif
|
|
HRESULT
|
|
ConvertTrusteeToSid(
|
|
LPWSTR pszServerName,
|
|
CCredentials& Credentials,
|
|
BSTR bstrTrustee,
|
|
PSID * ppSid,
|
|
PDWORD pdwSidSize,
|
|
BOOL fNTDSType
|
|
);
|
|
|
|
//
|
|
// The remaining definitions are support routines to enable
|
|
// dynamic loading of libraries.
|
|
//
|
|
extern CRITICAL_SECTION g_csLoadLibsCritSect;
|
|
#define ENTER_LOADLIBS_CRITSECT() EnterCriticalSection(&g_csLoadLibsCritSect)
|
|
#define LEAVE_LOADLIBS_CRITSECT() LeaveCriticalSection(&g_csLoadLibsCritSect)
|
|
|
|
extern HANDLE g_hDllSecur32;
|
|
extern HANDLE g_hDllNtdsapi;
|
|
|
|
|
|
#define DSUNQUOTERDN_API "DsUnquoteRdnValueW"
|
|
#define DSCRACK_NAMES_API "DsCrackNamesW"
|
|
#define DSBIND_API "DsBindW"
|
|
#define DSUNBIND_API "DsUnBindW"
|
|
#define DSMAKEPASSWD_CRED_API "DsMakePasswordCredentialsW"
|
|
#define DSFREEPASSWD_CRED_API "DsFreePasswordCredentials"
|
|
#define DSBINDWITHCRED_API "DsBindWithCredW"
|
|
#define DSFREENAME_RESULT_API "DsFreeNameResultW"
|
|
#define QUERYCONTEXT_ATTR_API "QueryContextAttributesW"
|
|
|
|
//
|
|
// DsUnquoteRdnValue definition
|
|
//
|
|
typedef DWORD (*PF_DsUnquoteRdnValueW) (
|
|
IN DWORD cQuotedRdnValueLength,
|
|
IN LPCWSTR psQuotedRdnValue,
|
|
IN OUT DWORD *pcUnquotedRdnValueLength,
|
|
OUT LPWSTR psUnquotedRdnValue
|
|
);
|
|
|
|
DWORD DsUnquoteRdnValueWrapper(
|
|
IN DWORD cQuotedRdnValueLength,
|
|
IN LPCWSTR psQuotedRdnValue,
|
|
IN OUT DWORD *pcUnquotedRdnValueLength,
|
|
OUT LPTCH psUnquotedRdnValue
|
|
);
|
|
|
|
//
|
|
// DsMakePasswordCredentialsW
|
|
//
|
|
typedef DWORD (*PF_DsMakePasswordCredentialsW) (
|
|
LPCWSTR User,
|
|
LPCWSTR Domain,
|
|
LPCWSTR Password,
|
|
RPC_AUTH_IDENTITY_HANDLE *pAuthIdentity
|
|
);
|
|
|
|
DWORD DsMakePasswordCredentialsWrapper(
|
|
LPCWSTR User,
|
|
LPCWSTR Domain,
|
|
LPCWSTR Password,
|
|
RPC_AUTH_IDENTITY_HANDLE *pAuthIdentity
|
|
);
|
|
|
|
//
|
|
// DsFreePasswordCredentials definition
|
|
//
|
|
typedef DWORD (*PF_DsFreePasswordCredentials) (
|
|
RPC_AUTH_IDENTITY_HANDLE AuthIdentity
|
|
);
|
|
|
|
DWORD DsFreePasswordCredentialsWrapper(
|
|
RPC_AUTH_IDENTITY_HANDLE AuthIdentity
|
|
);
|
|
|
|
//
|
|
// DsBindW
|
|
//
|
|
typedef DWORD (*PF_DsBindW) (
|
|
LPCWSTR DomainControllerName,
|
|
LPCWSTR DnsDomainName,
|
|
HANDLE *phDS
|
|
);
|
|
|
|
DWORD DsBindWrapper(
|
|
LPCWSTR DomainControllerName,
|
|
LPCWSTR DnsDomainName,
|
|
HANDLE *phDS
|
|
);
|
|
|
|
//
|
|
// DsUnbindW
|
|
//
|
|
typedef DWORD (*PF_DsUnbindW) (
|
|
HANDLE *phDS
|
|
);
|
|
|
|
DWORD DsUnBindWrapper(
|
|
HANDLE *phDS
|
|
);
|
|
|
|
//
|
|
// DsCrackNamesW
|
|
//
|
|
typedef DWORD(*PF_DsCrackNamesW) (
|
|
HANDLE hDS,
|
|
DS_NAME_FLAGS flags,
|
|
DS_NAME_FORMAT formatOffered,
|
|
DS_NAME_FORMAT formatDesired,
|
|
DWORD cNames,
|
|
const LPCWSTR *rpNames,
|
|
PDS_NAME_RESULTW *ppResult
|
|
);
|
|
|
|
DWORD DsCrackNamesWrapper(
|
|
HANDLE hDS,
|
|
DS_NAME_FLAGS flags,
|
|
DS_NAME_FORMAT formatOffered,
|
|
DS_NAME_FORMAT formatDesired,
|
|
DWORD cNames,
|
|
const LPCWSTR *rpNames,
|
|
PDS_NAME_RESULTW *ppResult
|
|
);
|
|
|
|
//
|
|
// DsBindWithCredW.
|
|
//
|
|
typedef DWORD (*PF_DsBindWithCredW) (
|
|
LPCWSTR DomainControllerName,
|
|
LPCWSTR DnsDomainName,
|
|
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
|
|
HANDLE *phDS
|
|
);
|
|
|
|
DWORD DsBindWithCredWrapper(
|
|
LPCWSTR DomainControllerName,
|
|
LPCWSTR DnsDomainName,
|
|
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
|
|
HANDLE *phDS
|
|
);
|
|
|
|
//
|
|
// DsFreeNameResultW
|
|
//
|
|
typedef DWORD (*PF_DsFreeNameResultW) (
|
|
DS_NAME_RESULTW *pResult
|
|
);
|
|
|
|
DWORD DsFreeNameResultWrapper(
|
|
DS_NAME_RESULTW *pResult
|
|
);
|
|
|
|
//
|
|
// QueryContextAttributes
|
|
//
|
|
typedef DWORD (*PF_QueryContextAttributes) (
|
|
PCtxtHandle phContext,
|
|
unsigned long ulAttribute,
|
|
void SEC_FAR * pBuffer
|
|
);
|
|
|
|
DWORD QueryContextAttributesWrapper(
|
|
PCtxtHandle phContext,
|
|
unsigned long ulAttribute,
|
|
void SEC_FAR * pBuffer
|
|
);
|
|
|
|
|