IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)
El código de aplicación en modo de usuario que se ejecuta con privilegios de administrador puede invocar las operaciones de administración de caché de NV definidas aquí, mediante DeviceIoControl y el código de control de IOCTL_SCSI_MINIPORT . O bien, el autor de la llamada puede ser código de controlador en modo kernel mediante IoBuildDeviceIoControlRequest y el código de control IOCTL_SCSI_MINIPORT.
La solicitud de función de administración de caché de NV se especifica en un campo de la estructura NVCACHE_REQUEST_BLOCK . La entrada para IOCTL_SCSI_MINIPORT es una estructura de datos definida por el usuario que contiene una estructura de SRB_IO_CONTROL seguida de una estructura de NVCACHE_REQUEST_BLOCK . Los datos adicionales específicos de la función pueden seguir opcionalmente la estructura NVCACHE_REQUEST_BLOCK .
La interfaz que se usa para la funcionalidad de administración de caché de NV consta de dos capas. La primera capa es la interfaz entre un llamador y el controlador de puerto, que se define mediante IOCTL_SCSI_MINIPORT. La segunda capa es la interfaz entre el autor de la llamada y el dispositivo, que se define mediante la especificación ATA8-ACS y IOCTL_SCSI_MINIPORT_NVCACHE. La API para el código de aplicación en modo de usuario es la interfaz DeviceIoControl. La API para el código del controlador en modo kernel es la interfaz IoBuildDeviceIoControlRequest , que usa IOCTL_SCSI_MINIPORT.
Código principal
Búfer de entrada
El búfer de Irp-AssociatedIrp.SystemBuffer> contiene una estructura de SRB_IO_CONTROL con el campo Firma establecido en "HYBRDISK" y el campo ControlCode establecido en IOCTL_SCSI_MINIPORT_NVCACHE. La estructura NVCACHE_REQUEST_BLOCK sigue inmediatamente a la estructura SRB_IO_CONTROL . Cualquier búfer de datos opcional específico de la función sigue inmediatamente la estructura de NVCACHE_REQUEST_BLOCK .
Longitud del búfer de entrada
Parameters.DeviceIoControl.InputBufferLength indica el tamaño, en bytes, de todos los datos de entrada: SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCK y búfer de datos específicos de función combinados. La presencia o ausencia de un búfer de datos se indica mediante el campo NVCACHE_REQUEST_BLOCK***DataBufSize .
Búfer de salida
Las estructuras SRB_IO_CONTROL SRB_IO_CONTROL**]() y NVCACHE_REQUEST_BLOCK, así como el búfer de datos específico de función opcional, se devuelven al búfer en Irp-AssociatedIrp.SystemBuffer>.
Longitud del búfer de salida
Longitud del búfer.
Bloque de estado
El campo Información contiene el número de bytes devueltos en el búfer de salida. El campo Estado indica los resultados de la operación.
Requisitos
Requisito | Valor |
---|---|
Header | ntddscsi.h (incluya Ntddscsi.h) |