I_NetLogonControl2 函数 (lmaccess.h)

I_NetLogonControl2 函数控制 Netlogon 服务的各个方面。

语法

NET_API_STATUS NET_API_FUNCTION I_NetLogonControl2(
  [in, optional] LPCWSTR ServerName,
  [in]           DWORD   FunctionCode,
  [in]           DWORD   QueryLevel,
  [in]           LPBYTE  Data,
  [out]          LPBYTE  *Buffer
);

parameters

[in, optional] ServerName

远程服务器的名称。

[in] FunctionCode

要执行的操作。 此值可为下列值之一。

含义
NETLOGON_CONTROL_QUERY
1
无操作。 仅返回请求的信息。
NETLOGON_CONTROL_REPLICATE
2
强制备份域控制器上的安全帐户管理员 (SAM) 数据库 (BDC) 与主域控制器上的副本同步 (PDC) 。 此操作并不意味着完全同步。 如果可能,Netlogon 服务会复制任何未完成的差异。
NETLOGON_CONTROL_SYNCHRONIZE
3
强制 BDC 从 PDC 获取 SAM 数据库的新副本。 此操作执行完全同步。
NETLOGON_CONTROL_PDC_REPLICATE
4
强制 PDC 要求立即复制每个 BDC。
NETLOGON_CONTROL_REDISCOVER
5
强制域控制器 (DC) 重新发现指定的受信任域 DC。
NETLOGON_CONTROL_TC_QUERY
6
查询安全通道,请求有关其上次使用情况的状态更新。
NETLOGON_CONTROL_TC_VERIFY
10
验证指定的受信任域安全通道的当前状态。 如果状态指示成功,则对域控制器执行 ping 操作。 如果状态或 ping 指示失败,则会重新发现新的受信任域控制器。
NETLOGON_CONTROL_CHANGE_PASSWORD
9
强制对安全通道对受信任的域进行密码更改。
NETLOGON_CONTROL_FORCE_DNS_REG
11
强制域控制器重新注册其所有 DNS 记录。 QueryLevel 参数必须设置为 1。
NETLOGON_CONTROL_QUERY_DNS_REG
12
发出查询,请求 Netlogon 服务执行的 DNS 更新的状态。 如果在上次更新时发生任何 DNS 注册或注销错误,则结果为负数。 QueryLevel 参数必须设置为 1。

[in] QueryLevel

指示应从 Netlogon 服务返回的信息。 此值可以是以下任一结构。

NETLOGON_INFO_1 (1)

NETLOGON_INFO_2 (2)

NETLOGON_INFO_3 (3)

NETLOGON_INFO_4 (4)

[in] Data

承载依赖于 FunctionCode 参数中指定的值的输入数据。 NETLOGON_CONTROL_REDISCOVER和NETLOGON_CONTROL_TC_QUERY函数代码指定 (数据类型为 LPWSTR *) 的受信任域名。

[out] Buffer

返回指向缓冲区的指针,该缓冲区包含 QueryLevel 参数中传递的结构中请求的信息。

必须使用 NetApiBufferFree 释放缓冲区。

返回值

方法在成功时返回0x00000000 (NERR_Success) ;否则,它将返回 Lmerr.h 或 Winerror.h 中定义的非零错误代码。 NET_API_STATUS错误代码以值0x00000834开头。 有关网络管理错误代码的详细信息,请参阅 Network_Management_Error_Codes。 下表描述了可能的返回值。

返回代码/值 说明
NERR_Success
0x00000000
方法调用已完成,没有错误。
ERROR_ACCESS_DENIED
0x00000005
调用方的访问权限验证返回 false。 拒绝访问。
ERROR_NOT_ENOUGH_MEMORY
0x00000008
没有足够的存储空间可用于处理此命令。
ERROR_NOT_SUPPORTED
0x00000032
函数代码在指定的服务器上无效。 例如,NETLOGON_CONTROL_REPLICATE可能已传递到 PDC) (主域控制器。
ERROR_INVALID_PARAMETER
0x00000057
参数不正确。
ERROR_INVALID_LEVEL
0x0000007C
查询调用级别不正确。
ERROR_SERVICE_NOT_ACTIVE
0x000004261210121
该服务尚未启动。
ERROR_INVALID_COMPUTERNAME
0x000004BA
指定计算机名的格式无效。
ERROR_NO_LOGON_SERVERS
0x0000051F
当前没有可用于处理登录请求的登录服务器。
ERROR_INVALID_DOMAIN_ROLE
0x0000054A
尝试在备份域控制器上更改域间信任帐户的密码 (BDC) 。 只有域的 PDC 才允许此操作。
ERROR_NO_SUCH_DOMAIN
0x0000054B
指定的域不存在,或无法访问。
NERR_UserNotFound
0x000008AD
找不到用户名。

注解

此函数可用于请求 BDC 确保其 SAM 数据库副本处于最新状态。 它还可用于确定 BDC 当前是否向 PDC 开放了安全通道。

要求

   
目标平台 Windows
标头 lmaccess.h
Library Netapi32.lib
DLL Netapi32.dll

另请参阅

NETLOGON_INFO_1

NETLOGON_INFO_2

NETLOGON_INFO_3

NETLOGON_INFO_4