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).

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

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:

Valor Significado
StorStartDevice
0x00
Inicie el dispositivo.
StorRemoveDevice
0x02
Quite el dispositivo.
StorStopDevice
0x04
Detenga el dispositivo.
StorQueryCapabilities
0x09
Consulte las funcionalidades del dispositivo.
StorQueryResourceRequirements
0x0B
Consulte los requisitos de recursos del dispositivo.
StorFilterResourceRequirements
0x0D
Filtre los requisitos de recursos para el dispositivo.
StorSupriseRemoval
0 x 17
Eliminación sorpresa del dispositivo. Este valor se agregó en Windows 7.

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)

Consulte también

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification