IOCTL_EHSTOR_DRIVER_PERFORM_AUTHZ IOCTL (ehstorioctl.h)
IOCTL_EHSTOR_DRIVER_PERFORM_AUTHZ 由增强型存储类驱动程序 (EHSTOR) 发送到 silo 驱动程序,以启动按需身份验证或取消身份验证。
主要代码
输入缓冲区
Irp-AssociatedIrp.SystemBuffer> 处的输入缓冲区必须包含指示要执行的身份验证操作类型的AUTHZ_STATE结构。 AUTHZ_STATE 在 ehstorioctl.h 中声明如下。
typedef struct _AUTHZ_STATE
{
ULONG AuthzState;
} AUTHZ_STATE;
AuthzState 的值指定身份验证操作。 这是以下项之一。
值 | 说明 |
---|---|
0 | 执行按需取消身份验证。 |
AUTHZSTATE_AUTHENTICATE | 执行按需身份验证。 |
AUTHZSTATE_CLEAR_AUTHKEY_CACHE | 执行按需取消身份验证并清除缓存的身份验证密钥。 |
输入缓冲区长度
AUTHZ_STATE 结构的长度。
输出缓冲区
无。
输出缓冲区长度
无。
状态块
如果身份验证状态发生更改,接收器驱动程序将在 “状态” 字段中返回STATUS_SUCCESS。 否则,将返回STATUS_UNSUCCESSFUL。
注解
此 IOCTL 由 EHSTOR 发送到支持按需身份验证的 silo 驱动程序。 silo 驱动程序在以前的 IOCTL_EHSTOR_DRIVER_REPORT_CAPABILITIES 请求中通知 EHSTOR 此功能,并在 SILO_DRIVER_CAPABILITES 的 Capabilities 成员中设置了 CAP_ON_DEMAND_AUTHENTICATION标志。
为了响应此 IOCTL,silo 驱动程序对设备执行身份验证或取消身份验证。 对于带区设备,silo 驱动程序将根据系统缓冲区中的指定操作,解锁或锁定尽可能多的读取和写入带。
如果 silo 驱动程序无法执行请求的操作,则不会更改设备的身份验证状态。
如果 AUTHZ_STATE 的 AuthzState 成员设置为 AUTHZSTATE_CLEAR_AUTHKEY_CACHE,则 silo 驱动程序除了取消身份验证之外,还会清除其身份验证密钥缓存。 AUTHZSTATE_CLEAR_AUTHKEY_CACHE 是在系统关闭或休眠时设置的。 这可以防止休眠文件中存在密钥缓存。
如果设备支持多个接收器,则每个 silo 的身份验证是独占的。 一个 silo 驱动程序的身份验证操作不会影响另一个 silo 驱动程序设置的身份验证状态。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从Windows 8开始可用 |
标头 | ehstorioctl.h (包括 EhStorIoctl.h) |