DsGetDcOpenA 函数 (dsgetdc.h)

DsGetDcOpen 函数将打开新的域控制器枚举操作。

语法

DSGETDCAPI DWORD DsGetDcOpenA(
  [in]           LPCSTR  DnsName,
  [in]           ULONG   OptionFlags,
  [in, optional] LPCSTR  SiteName,
  [in, optional] GUID    *DomainGuid,
  [in, optional] LPCSTR  DnsForestName,
  [in]           ULONG   DcFlags,
  [out]          PHANDLE RetGetDcContext
);

参数

[in] DnsName

指向包含要枚举域控制器的域命名系统(DNS)名称的以 null 结尾的字符串的指针。 此参数不能 NULL

[in] OptionFlags

包含一组用于修改函数行为的标志。 这可以是零,也可以是以下一个或多个值的组合。

DS_ONLY_DO_SITE_NAME

仅枚举特定于站点的域控制器。

DS_NOTIFY_AFTER_SITE_RECORDS

检索所有特定于站点的域控制器后,DsGetDcNext 函数将返回 ERROR_FILEMARK_DETECTED 值。 DsGetDcNext 将枚举第二个组,其中包含域中的所有域控制器,包括第一组中包含的特定于站点的域控制器。

[in, optional] SiteName

指向包含客户端所在的站点名称的以 null 结尾的字符串的指针。 此参数是可选的,可以 NULL

[in, optional] DomainGuid

指向 GUID 值的指针,该值包含由 DnsName指定的域的标识符。 此标识符用于处理重命名域的情况。 如果指定了此值,并且重命名了 DnsName 中指定的域,则此函数将尝试枚举包含指定标识符的域中的域控制器。 此参数是可选的,可以 NULL

[in, optional] DnsForestName

指向包含 DnsName 域的林名称的 null 终止字符串的指针。 此值与 DomainGuid 结合使用,以枚举域(如果域已重命名)。 此参数是可选的,可以 NULL

[in] DcFlags

包含一组标识要枚举的域控制器类型的标志。 这可以是零,也可以是以下一个或多个值的组合。

DS_FORCE_REDISCOVERY

强制忽略缓存的域控制器数据。 如果未指定此标志,DsGetDcOpen 从缓存的域控制器数据中获取域控制器枚举。

DS_GC_SERVER_REQUIRED

要求将枚举域控制器作为根域的域林的全局编录服务器。 此标志不能与 DS_PDC_REQUIRED 标志结合使用。

DS_KDC_REQUIRED

要求枚举的域控制器当前正在运行 Kerberos 密钥分发中心服务。 此标志不能与 DS_PDC_REQUIREDDS_GC_SERVER_REQUIRED 标志组合在一起。

DS_ONLY_LDAP_NEEDED

指定枚举服务器是 LDAP 服务器。 服务器不一定是域控制器。 每个枚举服务器上都未暗示其他任何服务。 服务器不一定具有可写 配置 容器,也不一定具有可写 架构 容器。 服务器不一定用于创建或修改安全原则。 此标志可与 DS_GC_SERVER_REQUIRED 标志一起使用,以枚举同时托管全局编录服务器的 LDAP 服务器。 在这种情况下,枚举的全局编录服务器不一定是域控制器,其他服务暗示在每个服务器上存在。 如果指定了此标志,则忽略 DS_PDC_REQUIREDDS_TIMESERV_REQUIREDDS_GOOD_TIMESERV_PREFERREDDS_DIRECTORY_SERVICES_PREFEREDDS_DIRECTORY_SERVICES_REQUIREDDS_KDC_REQUIRED 标志。

DS_PDC_REQUIRED

要求枚举的域控制器是域的主域控制器。 此标志不能与 DS_GC_SERVER_REQUIRED 标志组合在一起。

[out] RetGetDcContext

指向接收域控制器枚举上下文句柄的 HANDLE 值的指针。 此句柄与 DsGetDcNext 函数一起使用,用于标识域控制器枚举操作。 此句柄传递给 DsGetDcClose 以关闭域控制器枚举操作。

返回值

如果成功或 Win32 或 RPC 错误,则返回 ERROR_SUCCESS 否则返回。 可能的错误值包括以下内容。

言论

注意

dsgetdc.h 标头将 DsGetDcOpen 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista
支持的最低服务器 Windows Server 2008
目标平台 窗户
标头 dsgetdc.h
Netapi32.lib
DLL Netapi32.dll

另请参阅

目录服务函数

DsGetDcClose

DsGetDcNext

枚举域控制器