📄 ntdsapi.h
字号:
#else
#define DsReplicaSyncAll DsReplicaSyncAllA
#endif
NTDSAPI
DWORD
WINAPI
DsRemoveDsServerW(
HANDLE hDs, // in
LPWSTR ServerDN, // in
LPWSTR DomainDN, // in, optional
BOOL *fLastDcInDomain, // out, optional
BOOL fCommit // in
);
NTDSAPI
DWORD
WINAPI
DsRemoveDsServerA(
HANDLE hDs, // in
LPSTR ServerDN, // in
LPSTR DomainDN, // in, optional
BOOL *fLastDcInDomain, // out, optional
BOOL fCommit // in
);
#ifdef UNICODE
#define DsRemoveDsServer DsRemoveDsServerW
#else
#define DsRemoveDsServer DsRemoveDsServerA
#endif
NTDSAPI
DWORD
WINAPI
DsRemoveDsDomainW(
HANDLE hDs, // in
LPWSTR DomainDN // in
);
NTDSAPI
DWORD
WINAPI
DsRemoveDsDomainA(
HANDLE hDs, // in
LPSTR DomainDN // in
);
#ifdef UNICODE
#define DsRemoveDsDomain DsRemoveDsDomainW
#else
#define DsRemoveDsDomain DsRemoveDsDomainA
#endif
NTDSAPI
DWORD
WINAPI
DsListSitesA(
HANDLE hDs, // in
PDS_NAME_RESULTA *ppSites); // out
NTDSAPI
DWORD
WINAPI
DsListSitesW(
HANDLE hDs, // in
PDS_NAME_RESULTW *ppSites); // out
#ifdef UNICODE
#define DsListSites DsListSitesW
#else
#define DsListSites DsListSitesA
#endif
NTDSAPI
DWORD
WINAPI
DsListServersInSiteA(
HANDLE hDs, // in
LPCSTR site, // in
PDS_NAME_RESULTA *ppServers); // out
NTDSAPI
DWORD
WINAPI
DsListServersInSiteW(
HANDLE hDs, // in
LPCWSTR site, // in
PDS_NAME_RESULTW *ppServers); // out
#ifdef UNICODE
#define DsListServersInSite DsListServersInSiteW
#else
#define DsListServersInSite DsListServersInSiteA
#endif
NTDSAPI
DWORD
WINAPI
DsListDomainsInSiteA(
HANDLE hDs, // in
LPCSTR site, // in
PDS_NAME_RESULTA *ppDomains); // out
NTDSAPI
DWORD
WINAPI
DsListDomainsInSiteW(
HANDLE hDs, // in
LPCWSTR site, // in
PDS_NAME_RESULTW *ppDomains); // out
#ifdef UNICODE
#define DsListDomainsInSite DsListDomainsInSiteW
#else
#define DsListDomainsInSite DsListDomainsInSiteA
#endif
NTDSAPI
DWORD
WINAPI
DsListServersForDomainInSiteA(
HANDLE hDs, // in
LPCSTR domain, // in
LPCSTR site, // in
PDS_NAME_RESULTA *ppServers); // out
NTDSAPI
DWORD
WINAPI
DsListServersForDomainInSiteW(
HANDLE hDs, // in
LPCWSTR domain, // in
LPCWSTR site, // in
PDS_NAME_RESULTW *ppServers); // out
#ifdef UNICODE
#define DsListServersForDomainInSite DsListServersForDomainInSiteW
#else
#define DsListServersForDomainInSite DsListServersForDomainInSiteA
#endif
// Define indices for DsListInfoForServer return data. Check status
// for each field as a given value may not be present.
#define DS_LIST_DSA_OBJECT_FOR_SERVER 0
#define DS_LIST_DNS_HOST_NAME_FOR_SERVER 1
#define DS_LIST_ACCOUNT_OBJECT_FOR_SERVER 2
NTDSAPI
DWORD
WINAPI
DsListInfoForServerA(
HANDLE hDs, // in
LPCSTR server, // in
PDS_NAME_RESULTA *ppInfo); // out
NTDSAPI
DWORD
WINAPI
DsListInfoForServerW(
HANDLE hDs, // in
LPCWSTR server, // in
PDS_NAME_RESULTW *ppInfo); // out
#ifdef UNICODE
#define DsListInfoForServer DsListInfoForServerW
#else
#define DsListInfoForServer DsListInfoForServerA
#endif
// Define indices for DsListRoles return data. Check status for
// each field as a given value may not be present.
#define DS_ROLE_SCHEMA_OWNER 0
#define DS_ROLE_DOMAIN_OWNER 1
#define DS_ROLE_PDC_OWNER 2
#define DS_ROLE_RID_OWNER 3
#define DS_ROLE_INFRASTRUCTURE_OWNER 4
NTDSAPI
DWORD
WINAPI
DsListRolesA(
HANDLE hDs, // in
PDS_NAME_RESULTA *ppRoles); // out
NTDSAPI
DWORD
WINAPI
DsListRolesW(
HANDLE hDs, // in
PDS_NAME_RESULTW *ppRoles); // out
#ifdef UNICODE
#define DsListRoles DsListRolesW
#else
#define DsListRoles DsListRolesA
#endif
// Definitions required for DsMapSchemaGuid routines.
#define DS_SCHEMA_GUID_NOT_FOUND 0
#define DS_SCHEMA_GUID_ATTR 1
#define DS_SCHEMA_GUID_ATTR_SET 2
#define DS_SCHEMA_GUID_CLASS 3
#define DS_SCHEMA_GUID_CONTROL_RIGHT 4
typedef struct
{
GUID guid; // mapped GUID
DWORD guidType; // DS_SCHEMA_GUID_* value
#ifdef MIDL_PASS
[string,unique] CHAR *pName; // might be NULL
#else
LPSTR pName; // might be NULL
#endif
} DS_SCHEMA_GUID_MAPA, *PDS_SCHEMA_GUID_MAPA;
typedef struct
{
GUID guid; // mapped GUID
DWORD guidType; // DS_SCHEMA_GUID_* value
#ifdef MIDL_PASS
[string,unique] WCHAR *pName; // might be NULL
#else
LPWSTR pName; // might be NULL
#endif
} DS_SCHEMA_GUID_MAPW, *PDS_SCHEMA_GUID_MAPW;
NTDSAPI
DWORD
WINAPI
DsMapSchemaGuidsA(
HANDLE hDs, // in
DWORD cGuids, // in
GUID *rGuids, // in
DS_SCHEMA_GUID_MAPA **ppGuidMap); // out
NTDSAPI
VOID
WINAPI
DsFreeSchemaGuidMapA(
PDS_SCHEMA_GUID_MAPA pGuidMap); // in
NTDSAPI
DWORD
WINAPI
DsMapSchemaGuidsW(
HANDLE hDs, // in
DWORD cGuids, // in
GUID *rGuids, // in
DS_SCHEMA_GUID_MAPW **ppGuidMap); // out
NTDSAPI
VOID
WINAPI
DsFreeSchemaGuidMapW(
PDS_SCHEMA_GUID_MAPW pGuidMap); // in
#ifdef UNICODE
#define DS_SCHEMA_GUID_MAP DS_SCHEMA_GUID_MAPW
#define PDS_SCHEMA_GUID_MAP PDS_SCHEMA_GUID_MAPW
#define DsMapSchemaGuids DsMapSchemaGuidsW
#define DsFreeSchemaGuidMap DsFreeSchemaGuidMapW
#else
#define DS_SCHEMA_GUID_MAP DS_SCHEMA_GUID_MAPA
#define PDS_SCHEMA_GUID_MAP PDS_SCHEMA_GUID_MAPA
#define DsMapSchemaGuids DsMapSchemaGuidsA
#define DsFreeSchemaGuidMap DsFreeSchemaGuidMapA
#endif
typedef struct
{
#ifdef MIDL_PASS
[string,unique] CHAR *NetbiosName; // might be NULL
[string,unique] CHAR *DnsHostName; // might be NULL
[string,unique] CHAR *SiteName; // might be NULL
[string,unique] CHAR *ComputerObjectName; // might be NULL
[string,unique] CHAR *ServerObjectName; // might be NULL
#else
LPSTR NetbiosName; // might be NULL
LPSTR DnsHostName; // might be NULL
LPSTR SiteName; // might be NULL
LPSTR ComputerObjectName; // might be NULL
LPSTR ServerObjectName; // might be NULL
#endif
BOOL fIsPdc;
BOOL fDsEnabled;
} DS_DOMAIN_CONTROLLER_INFO_1A, *PDS_DOMAIN_CONTROLLER_INFO_1A;
typedef struct
{
#ifdef MIDL_PASS
[string,unique] WCHAR *NetbiosName; // might be NULL
[string,unique] WCHAR *DnsHostName; // might be NULL
[string,unique] WCHAR *SiteName; // might be NULL
[string,unique] WCHAR *ComputerObjectName; // might be NULL
[string,unique] WCHAR *ServerObjectName; // might be NULL
#else
LPWSTR NetbiosName; // might be NULL
LPWSTR DnsHostName; // might be NULL
LPWSTR SiteName; // might be NULL
LPWSTR ComputerObjectName; // might be NULL
LPWSTR ServerObjectName; // might be NULL
#endif
BOOL fIsPdc;
BOOL fDsEnabled;
} DS_DOMAIN_CONTROLLER_INFO_1W, *PDS_DOMAIN_CONTROLLER_INFO_1W;
typedef struct
{
#ifdef MIDL_PASS
[string,unique] CHAR *NetbiosName; // might be NULL
[string,unique] CHAR *DnsHostName; // might be NULL
[string,unique] CHAR *SiteName; // might be NULL
[string,unique] CHAR *SiteObjectName; // might be NULL
[string,unique] CHAR *ComputerObjectName; // might be NULL
[string,unique] CHAR *ServerObjectName; // might be NULL
[string,unique] CHAR *NtdsDsaObjectName; // might be NULL
#else
LPSTR NetbiosName; // might be NULL
LPSTR DnsHostName; // might be NULL
LPSTR SiteName; // might be NULL
LPSTR SiteObjectName; // might be NULL
LPSTR ComputerObjectName; // might be NULL
LPSTR ServerObjectName; // might be NULL
LPSTR NtdsDsaObjectName; // might be NULL
#endif
BOOL fIsPdc;
BOOL fDsEnabled;
BOOL fIsGc;
// Valid iff SiteObjectName non-NULL.
GUID SiteObjectGuid;
// Valid iff ComputerObjectName non-NULL.
GUID ComputerObjectGuid;
// Valid iff ServerObjectName non-NULL;
GUID ServerObjectGuid;
// Valid iff fDsEnabled is TRUE.
GUID NtdsDsaObjectGuid;
} DS_DOMAIN_CONTROLLER_INFO_2A, *PDS_DOMAIN_CONTROLLER_INFO_2A;
typedef struct
{
#ifdef MIDL_PASS
[string,unique] WCHAR *NetbiosName; // might be NULL
[string,unique] WCHAR *DnsHostName; // might be NULL
[string,unique] WCHAR *SiteName; // might be NULL
[string,unique] WCHAR *SiteObjectName; // might be NULL
[string,unique] WCHAR *ComputerObjectName; // might be NULL
[string,unique] WCHAR *ServerObjectName; // might be NULL
[string,unique] WCHAR *NtdsDsaObjectName; // might be NULL
#else
LPWSTR NetbiosName; // might be NULL
LPWSTR DnsHostName; // might be NULL
LPWSTR SiteName; // might be NULL
LPWSTR SiteObjectName; // might be NULL
LPWSTR ComputerObjectName; // might be NULL
LPWSTR ServerObjectName; // might be NULL
LPWSTR NtdsDsaObjectName; // might be NULL
#endif
BOOL fIsPdc;
BOOL fDsEnabled;
BOOL fIsGc;
// Valid iff SiteObjectName non-NULL.
GUID SiteObjectGuid;
// Valid iff ComputerObjectName non-NULL.
GUID ComputerObjectGuid;
// Valid iff ServerObjectName non-NULL;
GUID ServerObjectGuid;
// Valid iff fDsEnabled is TRUE.
GUID NtdsDsaObjectGuid;
} DS_DOMAIN_CONTROLLER_INFO_2W, *PDS_DOMAIN_CONTROLLER_INFO_2W;
// The following APIs strictly find domain controller account objects
// in the DS and return information associated with them. As such, they
// may return entries which correspond to domain controllers long since
// decommissioned, etc. and there is no guarantee that there exists a
// physical domain controller at all. Use DsGetDcName (dsgetdc.h) to find
// live domain controllers for a domain.
NTDSAPI
DWORD
WINAPI
DsGetDomainControllerInfoA(
HANDLE hDs, // in
LPCSTR DomainName, // in
DWORD InfoLevel, // in
DWORD *pcOut, // out
VOID **ppInfo); // out
NTDSAPI
DWORD
WINAPI
DsGetDomainControllerInfoW(
HANDLE hDs, // in
LPCWSTR DomainName, // in
DWORD InfoLevel,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -