Поделиться через


структура 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

Sizeof(NVCACHE_REQUEST_BLOCK).

Function

Указывает выполняемую операцию, которая может иметь одно из следующих значений:

Значение Значение
NRB_FUNCTION_NVCACHE_INFO Получение сведений о поддержке функций диспетчера кэша NV с устройства. После успешного выполнения этой функции необходимые поля данных возвращаются вызывающей объекту. Структура возвращаемых данных NV_FEATURE_PARAMETER.
NRB_FUNCTION_SPINDLE_STATUS Определите, является ли устройство в данный момент вращающимися или вращающимися. Для устройства ATA требуется команда Проверить режим питания, чтобы получить состояние шпинделя устройства. Для устройства SCSI можно использовать команду Контроль режима, чтобы запросить текущий режим питания устройства.
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 Получите диапазоны адресов логического блока (LBA), которые в настоящее время находятся в закрепленном наборе диспетчера кэша NV.
NRB_FUNCTION_QUERY_CACHE_MISS Запросите, чтобы устройство сообщалось о промахах кэша NV в диапазонах LBA в одном блоке 512 байт.
NRB_FUNCTION_ADD_LBAS_PINNED_SET Добавьте LBA, указанные в наборе данных диспетчера кэша NV, в закрепленный набор диспетчера кэша NV, если они еще не установлены.
NRB_FUNCTION_REMOVE_LBAS_PINNED_SET Удалите сетевые подсистемы балансировки нагрузки, указанные в наборе данных набора кэша NV, из закрепленного набора NV Cache.
NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS Зарезервировано для последующего использования.
NRB_FUNCTION_PASS_HINT_PAYLOAD Передайте подсказки ввода-вывода на устройство 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, возвращенным с устройства.

Комментарии

Дополнительные сведения о поведении функции см. в разделе 7.20 спецификации ATA8-ACS.

Требования

Требование Значение
Заголовок ntddscsi.h (включая Ntddscsi.h)

См. также раздел

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_MINIPORT_NVCACHE