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


структура 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 требуется команда Check Power Mode для получения состояния спинделя устройства. Для устройства 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 Получение диапазонов адресов логического блока (LBA) в закрепленном наборе NV Cache Manager.
NRB_FUNCTION_QUERY_CACHE_MISS Запросите сообщение об отсутствии кэша NV устройства в диапазонах LBA в одном блоке 512-байтов.
NRB_FUNCTION_ADD_LBAS_PINNED_SET Добавьте сетевые подсистемы балансировки нагрузки, указанные в наборе данных диспетчера кэша NV, если они еще не установлены.
NRB_FUNCTION_REMOVE_LBAS_PINNED_SET Удалите сетевые нагрузки, указанные в наборе данных набора наборов кэша NV, из закрепленного набора кэша NV.
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 это значение — код sense, возвращаемый с устройства.

NVCacheSubStatus

Код ошибки, возвращенный устройством. Для устройства ATA это значение является содержимым реестра ошибок в файле задачи. Для устройства SCSI это значение является ключом Sense, возвращаемым из устройства.

Замечания

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

Требования

Требование Ценность
заголовка ntddscsi.h (include Ntddscsi.h)

См. также

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_MINIPORT_NVCACHE