struttura SCSI_WMI_REQUEST_BLOCK (srb.h)
Questa struttura è una versione speciale di un SCSI_REQUEST_BLOCK da usare con i comandi WMI.
Sintassi
typedef struct _SCSI_WMI_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR WMISubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR Reserved1;
UCHAR WMIFlags;
UCHAR Reserved2[2];
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID DataPath;
PVOID Reserved3;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG Reserved4;
ULONG Reserved6;
UCHAR Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;
Members
Length
Specifica le dimensioni in byte di questa struttura.
Function
SRB_FUNCTION_WMI, che specifica che la richiesta è una richiesta WMI. Se questo membro non è impostato su SRB_FUNCTION_WMI, il driver miniport non riuscirà alla richiesta.
SrbStatus
Restituisce lo stato della richiesta completata. Questo membro deve essere impostato dal driver miniport prima di notificare al driver specifico del sistema operativo che la richiesta è stata completata chiamando ScsiPortNotification con RequestComplete. Il valore di questo membro può essere qualsiasi valore elencato per SrbStatus in SCSI_REQUEST_BLOCK.
WMISubFunction
Indica l'azione WMI da eseguire. Un driver miniport chiama ScsiPortWmiDispatchFunction con MinorFunction impostato su questo valore. Il valore della sottofunzione corrisponde al numero IRP secondario WMI che identifica l'operazione WMI.
PathId
Indica la porta o il bus SCSI per la richiesta. Questo valore è in base zero. Se SRB_WMI_FLAGS_ADAPTER_REQUEST è impostato in WMIFlags, questo membro è riservato.
TargetId
Indica il controller di destinazione o il dispositivo nel bus. Se SRB_WMI_FLAGS_ADAPTER_REQUEST è impostato in WMIFlags, questo membro è riservato.
Lun
Indica il numero di unità logica del dispositivo. Se SRB_WMI_FLAGS_ADAPTER_REQUEST è impostato in WMIFlags, questo membro è riservato.
Reserved1
Riservato per l'uso del sistema e non disponibile per l'uso da parte dei driver miniport.
WMIFlags
Indica che la richiesta WMI è per l'adattatore se SRB_WMI_FLAGS_ADAPTER_REQUEST è impostata e che PathId, TargetId e Lun sono riservati. In caso contrario, WMIFlags sarà NULL, a indicare che la richiesta è per il dispositivo specificato da PathId, TargetId e Lun.
Reserved2[2]
Riservato per l'uso del sistema e non disponibile per l'uso da parte dei driver miniport.
SrbFlags
Indica vari parametri e opzioni sulla richiesta. SrbFlags è di sola lettura. Questo membro verrà impostato su uno o più dei flag seguenti insieme:
SRB_FLAGS_DATA_IN
Indica che i dati verranno trasferiti dal dispositivo al sistema.
SRB_FLAGS_DATA_OUT
Indica che i dati verranno trasferiti dal sistema al dispositivo.
SRB_FLAGS_NO_DATA_TRANSFER
Indica che non viene trasferito alcun dato con questa richiesta. Se questa impostazione è impostata, i flag SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN e SRB_FLAGS_UNSPECIFIED_DIRECTION sono chiari.
SRB_FLAGS_DISABLE_SYNCH_TRANSFER
Indica l'HBA, se possibile, deve eseguire operazioni di I/O asincrone per questa richiesta di trasferimento. Se l'I/O sincrono è stato negoziato in precedenza, l'HBA deve rinegoziare per le operazioni di I/O asincrone prima di eseguire il trasferimento.
SRB_FLAGS_DISABLE_DISCONNECT
Indica che l'HBA non deve consentire alla destinazione di disconnettersi dal bus SCSI durante l'elaborazione di questa richiesta.
DataTransferLength
Indica le dimensioni in byte del buffer di dati. Un driver miniport chiama ScsiPortWmiDispatchFunction con BufferSize impostato su questo valore. Se si verifica una sottorun, il driver miniport deve aggiornare questo membro al numero di byte effettivamente trasferiti.
TimeOutValue
Indica l'intervallo in secondi che la richiesta può essere eseguita prima che il driver di porta specifico del sistema operativo possa considerarlo timeout. I driver Miniport non sono necessari per le richieste temporali perché il driver della porta lo fa già.
DataBuffer
Punta al buffer dei dati. Un driver miniport chiama ScsiPortWmiDispatchFunction con Buffer impostato su questo valore. I driver Miniport possono usare questo valore come puntatore dati indipendentemente dal valore di MapBuffers nel PORT_CONFIGURATION_INFORMATION per l'HBA. Un driver miniport non può trasferire i dati direttamente nel buffer usando DMA.
DataPath
Specifica il percorso dati WMI per questa richiesta. Un driver miniport chiama ScsiPortWmiDispatchFunction con DataPath impostato su questo valore.
Reserved3
Riservato per l'uso del sistema e non disponibile per l'uso da parte dei driver miniport.
OriginalRequest
Punta all'IRP per questa richiesta. Questo membro è irrilevante per i driver miniport.
SrbExtension
Punta all'estensione Srb. Un driver miniport non deve utilizzare questo membro se imposta SrbExtensionSize su zero nel HW_INITIALIZATION_DATA. La memoria in SrbExtension non viene inizializzata dal driver di porta specifico del sistema operativo e i dati determinati dal driver miniport possono essere accessibili direttamente dall'HBA. L'indirizzo fisico corrispondente può essere ottenuto chiamando ScsiPortGetPhysicalAddress con il puntatore SrbExtension .
Reserved4
Riservato per l'uso del sistema e non disponibile per l'uso da parte dei driver miniport.
Reserved6
Riservato per l'uso del sistema e non disponibile per l'uso da parte dei driver miniport. Questo membro è valido a partire da Windows Server 2003 con SP1.
Reserved5[16]
Riservato per l'uso del sistema e non disponibile per l'uso da parte dei driver miniport.
Commenti
I driver di archiviazione e filtro di Windows NT possono inviare SRB WMI al driver della porta di sistema. Il driver della porta di sistema gestirà determinate richieste WMI per conto dei driver miniport. Se il driver della porta non è in grado di gestire una richiesta WMI, inoltra la richiesta al driver miniport.
Un driver miniport riceve richieste WMI dal driver di porta solo se il driver miniport imposta WmiDataProvider nella struttura PORT_CONFIGURATION_INFORMATION. Se il driver miniport supporta una richiesta, deve elaborarlo e completare la richiesta chiamando ScsiPortNotification due volte, prima con RequestComplete e quindi con NextRequest (o NextLuRequest).
Per informazioni sul supporto di WMI nei driver miniport, vedere Strumentazione gestione Windows.
Requisiti
Requisito | Valore |
---|---|
Intestazione | srb.h (include Storport.h, Srb.h, Storport.h, Minitape.h) |