NVCACHE_REQUEST_BLOCK 结构 (ntddscsi.h)
NVCACHE_REQUEST_BLOCK结构与IOCTL_SCSI_MINIPORT请求结合使用, (H-HDD) 设备 (管理混合硬盘驱动器,例如 Microsoft ReadyDrive 技术) 。 本主题定义对 NV 缓存管理器的调用的输入数据和输出数据的常规结构。 调用方应在调用 DeviceIoControl 或 IoBuildDeviceIoControlRequest 之前填写所有必填字段。 微型端口驱动程序必须在请求的函数完成后和返回之前执行相同的操作。
语法
typedef struct _NVCACHE_REQUEST_BLOCK {
ULONG NRBSize;
USHORT Function;
ULONG NRBFlags;
ULONG NRBStatus;
ULONG Count;
ULONGLONG LBA;
ULONG DataBufSize;
ULONG NVCacheStatus;
ULONG NVCacheSubStatus;
} NVCACHE_REQUEST_BLOCK, *PNVCACHE_REQUEST_BLOCK;
成员
NRBSize
(NVCACHE_REQUEST_BLOCK) 的大小 。
Function
指定要执行的操作,可以是以下值之一:
值 | 含义 |
---|---|
NRB_FUNCTION_NVCACHE_INFO | 从设备获取 NV 缓存管理器功能支持信息。 成功完成此函数后,所需的数据字段将返回给调用方。 返回数据结构 NV_FEATURE_PARAMETER。 |
NRB_FUNCTION_SPINDLE_STATUS | 确定设备当前是旋转还是正在旋转。 对于 ATA 设备,需要“检查电源模式”命令来获取设备的轴状态。 对于 SCSI 设备,可以使用 Mode Sense 命令来查询设备的当前电源模式。 |
NRB_FUNCTION_NVCACHE_POWER_MODE_SET | 打开 NV 缓存管理器电源模式。 |
NRB_FUNCTION_NVCACHE_POWER_MODE_RESET | 关闭 NV 缓存管理器电源模式。 |
NRB_FUNCTION_FLUSH_NVCACHE | 刷新当前固定在 NV 缓存内存中的数据,使所需的 NV 缓存内存空间可用。 |
NRB_FUNCTION_QUERY_PINNED_SET | 获取 NV 缓存管理器固定集中当前) 范围的 LBA (逻辑块地址。 |
NRB_FUNCTION_QUERY_CACHE_MISS | 请求设备在单个 512 字节块中报告 LBA 范围内的 NV 缓存未命中数。 |
NRB_FUNCTION_ADD_LBAS_PINNED_SET | 将 NV 缓存管理器集数据中指定的 BA 添加到 NV 缓存管理器固定集(如果尚未这样做)。 |
NRB_FUNCTION_REMOVE_LBAS_PINNED_SET | 从 NV 缓存固定集中删除 NV 缓存集数据中指定的 LBA。 |
NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS | 保留供将来使用。 |
NRB_FUNCTION_PASS_HINT_PAYLOAD | 将 IO 提示传递到 SATA 设备。 |
NRBFlags
保留供将来使用。
NRBStatus
指示来自驱动程序的 NV 缓存管理器函数请求状态。 这可以是以下值之一:
值 | 含义 |
---|---|
NRB_SUCCESS | 无错误。 |
NRB_ILLEGAL_REQUEST | 端口驱动程序检测到的非法请求。 |
NRB_INVALID_PARAMETER | 传递给端口驱动程序的参数无效。 |
NRB_INPUT_DATA_OVERRUN | 提供给端口驱动程序的数据过多。 |
NRB_INPUT_DATA_UNDERRUN | 向端口驱动程序提供的数据不足。 |
NRB_OUTPUT_DATA_OVERRUN | 从端口驱动程序返回的数据过多。 |
NRB_OUTPUT_DATA_UNDERRUN | 从端口驱动程序返回的数据不足。 |
Count
要通过指定函数传输的 512 字节块的数目。
LBA
为指定函数启动设备的 LBA。
DataBufSize
数据缓冲区的大小(以字节为单位)。
NVCacheStatus
从设备返回的状态。 对于 ATA 设备,此值是其任务文件中状态寄存器的内容。 对于 SCSI 设备,此值是从设备返回的感知代码。
NVCacheSubStatus
从设备返回的错误代码。 对于 ATA 设备,此值是其任务文件中错误注册的内容。 对于 SCSI 设备,此值是从设备返回的 Sense 键。
注解
有关函数行为的详细信息,请参阅 ATA8-ACS 规范的第 7.20 部分。
要求
要求 | 值 |
---|---|
Header | ntddscsi.h (包括 Ntddscsi.h) |