estructura SCSI_PNP_REQUEST_BLOCK (minitape.h)
La estructuraSCSI_PNP_REQUEST_BLOCK es una versión especial de un SCSI_REQUEST_BLOCK que se usa para las solicitudes plug and play (PNP).
Sintaxis
typedef struct _SCSI_PNP_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR PnPSubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
STOR_PNP_ACTION PnPAction;
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID SenseInfoBuffer;
struct _SCSI_REQUEST_BLOCK *NextSrb;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG SrbPnPFlags;
ULONG Reserved;
UCHAR Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
Miembros
Length
Tamaño, en bytes, de la estructura SCSI_PNP_REQUEST_BLOCK .
Function
Operación que se va a realizar. Para la estructura SCSI_PNP_REQUEST_BLOCK , este miembro siempre se establece en SRB_FUNCTION_PNP.
SrbStatus
Estado de la solicitud completada. El controlador de minipuerto debe establecer este valor antes de notificar al controlador storport que la solicitud se ha completado. Un controlador de minipuerto notifica al controlador de Storport que la solicitud se ha completado llamando a la rutina StorPortNotification con un tipo de notificación requestComplete. Para obtener una lista de los posibles valores de estado, consulte SCSI_REQUEST_BLOCK.
PnPSubFunction
Este miembro no se usa actualmente. Los controladores de minipuerto omiten este miembro.
PathId
El puerto SCSI o el identificador de bus de la solicitud. Este valor es de base cero.
TargetId
Controlador de destino o identificador de dispositivo en el bus.
Lun
Número de unidad lógica (LUN) del dispositivo.
PnPAction
Acción plug and play que se va a realizar. Este miembro puede tener uno de los siguientes valores:
SrbFlags
El controlador de minipuerto debe ignorar este miembro.
DataTransferLength
El controlador de minipuerto debe ignorar este miembro.
TimeOutValue
El intervalo, en segundos, que la solicitud puede ejecutarse antes de que el controlador storport determine que la solicitud ha agotado el tiempo de espera.
DataBuffer
El controlador de minipuerto debe ignorar este miembro.
SenseInfoBuffer
El controlador de minipuerto debe ignorar este miembro.
NextSrb
El controlador de minipuerto debe ignorar este miembro.
OriginalRequest
El controlador de minipuerto debe ignorar este miembro.
SrbExtension
Puntero a la extensión SRB. Un controlador de minipuerto no debe usar este miembro si establece SrbExtensionSize en cero en la estructura HW_INITIALIZATION_DATA . El controlador storport no inicializa la memoria a la que apunta este miembro. El HBA puede acceder directamente a los datos que escribe el controlador de minipuerto en la extensión SRB. Un controlador de minipuerto puede obtener la dirección física de la extensión SRB llamando a la rutina StorPortGetPhysicalAddress .
SrbPnPFlags
Marcas PNP. Actualmente, la única marca permitida es SRB_PNP_FLAGS_ADAPTER_REQUEST, lo que indica que la solicitud PNP es para el adaptador y no para uno de los dispositivos del adaptador. Si se establece esta marca, el controlador de minipuerto debe omitir los valores de PathId, TargetId y Lun.
Reserved
Reservado para uso del sistema.
Reserved4[16]
Reservado para uso del sistema.
Comentarios
El controlador storport envía SCSI_PNP_REQUEST_BLOCK solicitudes a un controlador de minipuerto para notificar al controlador de miniporte los eventos plug and play de Windows que afectan a los dispositivos de almacenamiento conectados al adaptador.
El controlador de Storport llama a HwStorBuildIo para pasar SRB al controlador de minipuerto. HwStorBuildIo comprueba el miembro Function del SRB para determinar el tipo de SRB. Si el miembro function se establece en SRB_FUNCTION_PNP, el SRB es una estructura de tipo SCSI_PNP_REQUEST_BLOCK.
Requisitos
Requisito | Valor |
---|---|
Header | minitape.h (incluya Storport.h, Minitape.h, Srb.h) |