NCryptNotifyChangeKey 函数 (ncrypt.h)

NCryptNotifyChangeKey 函数创建或删除密钥更改通知。

此函数提供的句柄与 FindFirstChangeNotification 函数返回的句柄相同。 使用 等待函数 等待通知句柄收到信号。

语法

SECURITY_STATUS NCryptNotifyChangeKey(
  [in]      NCRYPT_PROV_HANDLE hProvider,
  [in, out] HANDLE             *phEvent,
  [in]      DWORD              dwFlags
);

参数

[in] hProvider

密钥存储提供程序的句柄。 此句柄是使用 NCryptOpenStorageProvider 函数获取的。

[in, out] phEvent

接收或包含密钥更改通知事件句柄的 HANDLE 变量的地址。 这是 FindFirstChangeNotification 函数返回的同一句柄。 有关详细信息,请参阅 dwFlags 参数说明。

[in] dwFlags

一组标志,用于修改此函数的行为。 此参数包含以下一个或多个值的组合。

含义
NCRYPT_REGISTER_NOTIFY_FLAG
0x00000001
创建新的更改通知。 phEvent 参数将接收密钥更改通知句柄。
NCRYPT_UNREGISTER_NOTIFY_FLAG
0x00000002
删除现有更改通知。 phEvent 参数必须包含有效的密钥更改通知句柄。 使用此标志调用此函数并将 INVALID_HANDLE_VALUE 值置于此句柄中后,此句柄不再有效。
NCRYPT_MACHINE_KEY_FLAG
0x00000020
接收计算机密钥存储中密钥的更改通知。 如果未指定此标志,则更改通知事件将仅针对调用用户的密钥存储中的密钥发生。 此标志仅在与 NCRYPT_REGISTER_NOTIFY_FLAG 标志组合使用时才有效。

返回值

返回指示函数成功或失败的状态代码。

可能的返回代码包括但不限于以下内容。

返回代码 说明
ERROR_SUCCESS
函数成功。
NTE_BAD_FLAGS
dwFlags 参数包含无效的值。
NTE_INVALID_HANDLE
hProvider 参数无效。
NTE_INVALID_PARAMETER
一个或多个参数无效。

注解

服务不得从其 StartService 函数调用此函数。 如果服务从其 StartService 函数调用此函数,则可能会出现死锁,并且服务可能会停止响应。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 ncrypt.h
Library Ncrypt.lib
DLL Ncrypt.dll

另请参阅

FindFirstChangeNotification