estructura de SCSI_PNP_REQUEST_BLOCK (storport.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 del controlador de puerto SCSI y del controlador de miniporte SCSI pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar el controlador Storport y los modelos de controlador de miniport storport .

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 de RequestComplete. Para obtener una lista de los valores de estado posibles, consulte SCSI_REQUEST_BLOCK.

PnPSubFunction

Este miembro no se usa actualmente. Los controladores de minipuerto ignoran 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 para el dispositivo.
StorFilterResourceRequirements (0x0D) Filtre los requisitos de recursos para el dispositivo.
StorSupriseRemoval (0x17) Eliminación sorpresa del dispositivo. Este valor se agregó en Windows 7.

SrbFlags

El controlador miniport debe ignorar este miembro.

DataTransferLength

El controlador miniport 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 miniport debe ignorar este miembro.

SenseInfoBuffer

El controlador miniport debe ignorar este miembro.

NextSrb

El controlador miniport debe ignorar este miembro.

OriginalRequest

El controlador miniport 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 miniporte 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 que están conectados al adaptador.

El controlador storport llama a HwStorBuildIo para pasar SRB al controlador de miniporte. 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 storport.h (incluya Storport.h, Minitape.h, Srb.h)

Consulte también

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification