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