NVCACHE_REQUEST_BLOCK结构(ntddscsi.h)

NVCACHE_REQUEST_BLOCK 结构与 IOCTL_SCSI_MINIPORT 请求结合使用来管理混合硬盘(H-HDD)设备(例如,Microsoft ReadyDrive 技术)。 本主题为对 NV 缓存管理器进行的调用定义输入数据和输出数据的常规结构。 调用方应在调用 DeviceIoControlIoBuildDeviceIoControlRequest之前填充所有必填字段。 微型端口驱动程序在完成请求的函数后以及返回之前必须执行相同的作。

语法

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 缓存管理器集数据中指定的 LBA 添加到 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 设备,此值是从设备返回的 Sense Code。

NVCacheSubStatus

从设备返回的错误代码。 对于 ATA 设备,此值是其任务文件中错误寄存器的内容。 对于 SCSI 设备,此值是从设备返回的 Sense 密钥。

言论

有关函数行为的详细信息,请参阅 ATA8-ACS 规范的第 7.20 部分。

要求

要求 价值
标头 ntddscsi.h (包括 Ntddscsi.h)

另请参阅

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_MINIPORT_NVCACHE