IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)

Операции управления кэшем NV, определенные здесь, можно вызвать с помощью кода приложения в пользовательском режиме, работающего с правами администратора, с помощью DeviceIoControl и кода элемента управления IOCTL_SCSI_MINIPORT. Или вызывающий объект может быть кодом драйвера в режиме ядра с помощью IoBuildDeviceIoControlRequest и кода элемента управления IOCTL_SCSI_MINIPORT.

Запрос функции управления кэшем NV указывается в поле в структуре NVCACHE_REQUEST_BLOCK. Входные данные для IOCTL_SCSI_MINIPORT — это определяемая пользователем структура данных, содержащая SRB_IO_CONTROL структуру, за которой следует NVCACHE_REQUEST_BLOCK структура. Дополнительные данные, относящиеся к функциям, могут при необходимости следовать структуре NVCACHE_REQUEST_BLOCK.

Интерфейс, используемый для функций управления кэшем NV, состоит из двух уровней. Первый уровень — это интерфейс между вызывающим и драйвером порта, который определяется IOCTL_SCSI_MINIPORT. Второй уровень — это интерфейс между вызывающим и устройством, который определяется спецификацией ATA8-ACS и IOCTL_SCSI_MINIPORT_NVCACHE. API для кода приложения в пользовательском режиме — это интерфейс DeviceIoControl. API для кода драйвера в режиме ядра — это интерфейс IoBuildDeviceIoControlRequest, который использует IOCTL_SCSI_MINIPORT.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Буфер в Irp->AssociatedIrp.SystemBuffer содержит структуру SRB_IO_CONTROL с полем сигнатуры с параметром HYBRDISK, а поле ControlCode — IOCTL_SCSI_MINIPORT_NVCACHE. Структура NVCACHE_REQUEST_BLOCK сразу же следует SRB_IO_CONTROL структуре. Любой необязательный буфер данных для конкретной функции немедленно следует NVCACHE_REQUEST_BLOCK структуре.

Длина входного буфера

Parameters.DeviceIoControl.InputBufferLength указывает размер в байтах всех входных данных: SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCKи объединенный буфер данных для конкретной функции. Наличие или отсутствие буфера данных указывается в поле NVCACHE_REQUEST_BLOCKDataBufSize .

Выходной буфер

Обновленные структуры SRB_IO_CONTROLSRB_IO_CONTROL**() и NVCACHE_REQUEST_BLOCK, а также необязательный буфер данных для конкретной функции возвращаются в буфер по Irp->AssociatedIrp.SystemBuffer.

Длина выходного буфера

Длина буфера.

Блок состояния

Поле сведений содержит количество байтов, возвращаемых в выходном буфере. Поле состояния указывает результаты операции.

Требования

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

См. также

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL