Compartir a través de


IOCTL_SCSI_MINIPORT_DSM IOCTL (storport.h)

Una notificación de administración de conjuntos de datos (DSM) se transfiere a un controlador de miniporte en una solicitud de código de control de IOCTL_SCSI_MINIPORT_DSM. La solicitud IOCTL_SCSI_MINIPORT_DSM es un sub-IOCTL de IOCTL_SCSI_MINIPORT. Este IOCTL generado por StorPort en respuesta a una acción DSM y, a continuación, se envía al miniporte como un STORAGE_REQUEST_BLOCK (SRB) con un tipo de función de SRB_FUNCTION_IO_CONTROL. Los datos de entrada y salida se encuentran en el bloque de datos SRB.

Nota Los modelos de controlador de puerto SCSI y controlador de miniport SCSI pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar el del controlador storport de y modelos de controlador de storport.
 

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El búfer especificado en el dataBuffer miembro del SRB debe contener una estructura de SRB_IO_CONTROL y una estructura de DSM_NOTIFICATION_REQUEST_BLOCK.

Longitud del búfer de entrada

dataTransferLength indica el tamaño, en bytes, del búfer, que debe ser al menos tamaño de (SRB_IO_CONTROL) + tamaño de(DSM_NOTIFICATION_REQUEST_BLOCK), con almacenamiento adicional para las estructuras de MP_DEVICE_DATA_SET_RANGE incluidas.

Búfer de salida

Se devuelve una estructura SRB_IO_CONTROL actualizada al búfer de datos de la SRB. El SrbStatus contiene el resultado del procesamiento del miniporte de la solicitud.

Longitud del búfer de salida

Longitud de una estructura de SRB_IO_CONTROL.

Bloque de estado

El estado resultante de la solicitud de función se establece en el miembro SrbStatus de SRB_IO_CONTROL. A continuación se muestran los códigos de estado del disco DSM IOCTL.

Estado de SRB Descripción
SRB_STATUS_SUCCESS La solicitud se completó correctamente.
SRB_STATUS_INVALID_REQUEST La solicitud contiene un tamaño de búfer no válido

Observaciones

DSM_NOTIFICATION_REQUEST_BLOCK

Una estructura DSM_NOTIFICATION_REQUEST_BLOCK sigue inmediatamente la estructura SRB_IO_CONTROL en el búfer de datos de la SRB. DSM_NOTIFICATION_REQUEST_BLOCK se define en ntddscsi.h como se indica a continuación.

typedef struct _DSM_NOTIFICATION_REQUEST_BLOCK {
    ULONG   Version;
    ULONG   Size;
    ULONG   NotifyFLags;
    ULONG   DataSetProfile;
    ULONG   Reserved[3];
    ULONG   DataSetRangesCount;
    MP_DEVICE_DATA_SET_RANGE DataSetRanges[ANYSIZE_ARRAY];
} DSM_NOTIFICATION_REQUEST_BLOCK, *PDSM_NOTIFICATION_REQUEST_BLOCK;

MP_DEVICE_DATA_SET_RANGE

Los intervalos LBA se incluyen en el elemento de DataSetRanges miembro de DSM_NOTIFICATION_REQUEST_BLOCK como una matriz de estructuras de MP_DEVICE_DATA_SET_RANGE. MP_DEVICE_DATA_SET_RANGE se define en ntddscsi.h como se indica a continuación.

typedef struct _MP_DEVICE_DATA_SET_RANGE {
    LONGLONG    StartingOffset;
    ULONGLONG   LengthInBytes;
} MP_DEVICE_DATA_SET_RANGE, *PMP_DEVICE_DATA_SET_RANGE;

La estructura DSM_NOTIFICATION_REQUEST_BLOCK se encuentra después de la estructura de SRB_IO_CONTROL en el dataBuffer de de la SRB.

La estructura de SRB_IO_CONTROL para este IOCTL contiene IOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATION en su miembro de firma de y IOCTL_SCSI_MINIPORT_DSM en el miembro controlCode de.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8.1.
encabezado de storport.h (incluya Ntddscsi.h, Storport.h)

Consulte también

IOCTL_SCSI_MINIPORT

SRB_IO_CONTROL

STORAGE_REQUEST_BLOCK