struttura SCSI_PNP_REQUEST_BLOCK (srb.h)
La strutturaSCSI_PNP_REQUEST_BLOCK è una versione speciale di una SCSI_REQUEST_BLOCK usata per le richieste di plug and play (PNP).
Sintassi
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;
Members
Length
Dimensione, in byte, della struttura SCSI_PNP_REQUEST_BLOCK .
Function
Operazione da eseguire. Per la struttura SCSI_PNP_REQUEST_BLOCK , questo membro viene sempre impostato su SRB_FUNCTION_PNP.
SrbStatus
Stato della richiesta completata. Il driver miniport deve impostare questo valore prima di notificare al driver Storport che la richiesta è stata completata. Un driver miniport notifica al driver Storport che la richiesta è stata completata chiamando la routine StorPortNotification con un tipo di notifica RequestComplete. Per un elenco dei possibili valori di stato, vedere SCSI_REQUEST_BLOCK.
PnPSubFunction
Questo membro non è attualmente utilizzato. I driver Miniport ignorano questo membro.
PathId
Porta SCSI o identificatore del bus per la richiesta. Questo valore è in base zero.
TargetId
Il controller di destinazione o l'identificatore del dispositivo nel bus.
Lun
Numero di unità logica (LUN) del dispositivo.
PnPAction
Azione plug and play da eseguire. Questo membro può avere uno dei valori seguenti:
SrbFlags
Il driver Miniport deve ignorare questo membro.
DataTransferLength
Il driver Miniport deve ignorare questo membro.
TimeOutValue
L'intervallo, espresso in secondi, che la richiesta può essere eseguita prima che il driver Storport determini il timeout della richiesta.
DataBuffer
Il driver Miniport deve ignorare questo membro.
SenseInfoBuffer
Il driver Miniport deve ignorare questo membro.
NextSrb
Il driver Miniport deve ignorare questo membro.
OriginalRequest
Il driver Miniport deve ignorare questo membro.
SrbExtension
Puntatore all'estensione SRB. Un driver miniport non deve utilizzare questo membro se imposta SrbExtensionSize su zero nella struttura HW_INITIALIZATION_DATA . Il driver Storport non inizializza la memoria a cui punta questo membro. L'HBA può accedere direttamente ai dati scritti dal driver miniport nell'estensione SRB. Un driver miniport può ottenere l'indirizzo fisico dell'estensione SRB chiamando la routine StorPortGetPhysicalAddress .
SrbPnPFlags
Flag PNP. Attualmente, l'unico flag consentito è SRB_PNP_FLAGS_ADAPTER_REQUEST, che indica che la richiesta PNP è per l'adattatore e non per uno dei dispositivi nella scheda. Se questo flag è impostato, il driver miniport deve ignorare i valori in PathId, TargetId e Lun.
Reserved
Riservato per l'utilizzo nel sistema.
Reserved4[16]
Riservato per l'utilizzo nel sistema.
Commenti
Il driver Storport invia SCSI_PNP_REQUEST_BLOCK richieste a un driver miniport per notificare al driver miniport gli eventi plug and play di Windows che interessano i dispositivi di archiviazione connessi alla scheda.
Il driver Storport chiama HwStorBuildIo per passare srb al driver miniport. HwStorBuildIo controlla il membro Function di SRB per determinare il tipo di SRB. Se il membro Function è impostato su SRB_FUNCTION_PNP, SRB è una struttura di tipo SCSI_PNP_REQUEST_BLOCK.
Requisiti
Requisito | Valore |
---|---|
Intestazione | srb.h (include Storport.h, Minitape.h, Srb.h) |