windows-nt/Source/XPSP1/NT/net/rras/dim/admindll/dsrights.h
2020-09-26 16:20:57 +08:00

134 lines
2.5 KiB
C

/*
File dsrights.h
header for project that establishes a ras server
in a domain.
Paul Mayfield, 4/20/98
*/
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <ntlsa.h>
#include <ntmsv1_0.h>
#include <crypt.h>
#define INC_OLE2
#include <windows.h>
#include <lmcons.h>
#include <lmapibuf.h>
#include <lmaccess.h>
#include <raserror.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <tchar.h>
#define SECURITY_WIN32
#include <sspi.h>
#include <activeds.h>
#include <adsi.h>
#include <ntdsapi.h>
#include <dsrole.h>
#include <dsgetdc.h>
#include <accctrl.h>
#include <aclapi.h>
#ifdef __cplusplus
extern "C" {
#endif
DWORD DsrTraceInit();
DWORD DsrTraceCleanup();
DWORD DsrTraceEx (DWORD dwErr, LPSTR pszTrace, ...);
#define DSR_ERROR(e) ((HRESULT_FACILITY((e)) == FACILITY_WIN32) ? HRESULT_CODE((e)) : (e));
#define DSR_FREE(s) if ((s)) DsrFree ((s))
#define DSR_RELEASE(s) if ((s)) (s)->Release();
#define DSR_BREAK_ON_FAILED_HR(_hr) {if (FAILED((_hr))) break;}
//
// Typedefs
//
typedef struct _DSRINFO
{
PWCHAR pszMachineDN;
PWCHAR pszGroupDN;
} DSRINFO;
//
// Memory management routines
//
PVOID
DsrAlloc (
IN DWORD dwSize,
IN BOOL bZero);
DWORD
DsrFree (
IN PVOID pvBuf);
//
// Searches given domain for a computer account
// with the given name and returns its ADsPath
// if found.
//
DWORD
DsrFindDomainComputer (
IN PWCHAR pszDomain,
IN PWCHAR pszComputer,
OUT PWCHAR* ppszADsPath);
//
// Searches given domain for the well known
// "RAS and IAS Servers" group and returns
// its ADsPath if found.
//
DWORD
DsrFindRasServersGroup (
IN PWCHAR pszDomain,
OUT PWCHAR* ppszADsPath);
//
// Adds or removes a given object from a given group.
//
DWORD
DsrGroupAddRemoveMember(
IN PWCHAR pszGroupDN,
IN PWCHAR pszNewMemberDN,
IN BOOL bAdd);
//
// Returns whether the given object is a member of
// the given group.
//
DWORD
DsrGroupIsMember(
IN PWCHAR pszGroupDN,
IN PWCHAR pszObjectName,
OUT PBOOL pbIsMember);
//
// Sets the ACES in the given domain to enable nt4 servers
//
DWORD
DsrDomainSetAccess(
IN PWCHAR pszDomain,
IN DWORD dwAccessFlags);
//
// Discovers whether security is such that nt4 ras servers
// can authenticate.
//
DWORD
DsrDomainQueryAccess(
IN PWCHAR pszDomain,
OUT LPDWORD lpdwAccessFlags);
#ifdef __cplusplus
}
#endif