// ntddscsi.h
// CTL_CODE(0x001b, 0x180, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SCSI_MINIPORT_NVCACHE 0x001B0600
View the official Windows Driver Kit DDI referenceNo description available.
The NV Cache Management operations that are defined here can be invoked by user-mode application code running with administrator privileges, using DeviceIoControl and the IOCTL_SCSI_MINIPORT control code. Or, the caller can be kernel-mode driver code using IoBuildDeviceIoControlRequest and the IOCTL_SCSI_MINIPORT control code.
The NV Cache Management function request is specified in a field in the NVCACHE_REQUEST_BLOCK structure. The input to IOCTL_SCSI_MINIPORT is a user-defined data structure that contains an SRB_IO_CONTROL structure followed by an NVCACHE_REQUEST_BLOCK structure. Additional function-specific data might optionally follow the NVCACHE_REQUEST_BLOCK structure.
The interface that is used for the NV Cache Management functionality consists of two layers. The first layer is the interface between a caller and the port driver, which is defined by IOCTL_SCSI_MINIPORT. The second layer is the interface between the caller and the device, which is defined by the ATA8-ACS specification and IOCTL_SCSI_MINIPORT_NVCACHE. The API for user-mode application code is the DeviceIoControl interface. The API for kernel-mode driver code is the IoBuildDeviceIoControlRequest interface, which uses IOCTL_SCSI_MINIPORT.
The buffer at Irp->AssociatedIrp.SystemBuffer contains an SRB_IO_CONTROL structure with the Signature field set to "HYBRDISK", and the ControlCode field set to IOCTL_SCSI_MINIPORT_NVCACHE. The NVCACHE_REQUEST_BLOCK structure immediately follows the SRB_IO_CONTROL structure. Any optional function-specific data buffer immediately follows the NVCACHE_REQUEST_BLOCK structure.
Parameters.DeviceIoControl.InputBufferLength indicates the size, in bytes, of all the input data: SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCK, and function-specific data buffer combined. The presence or absence of a data buffer is indicated by the NVCACHE_REQUEST_BLOCK DataBufSize field.
Updated SRB_IO_CONTROLSRB_IO_CONTROL**]() and *NVCACHE_REQUEST_BLOCK* structures, as well as the optional function-specific data buffer, are returned to the buffer at **Irp->AssociatedIrp.SystemBuffer**.
The length of the buffer.
The Information field contains the number of bytes returned in the output buffer. The Status field indicates the results of the operation.