SCSI_WMI_REQUEST_BLOCK struttura (storport.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 deve non riuscire la 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 di IRP secondario WMI che identifica l'operazione WMI.
PathId
Indica la porta o il bus SCSI per la richiesta. Questo valore è basato su 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'adapter se SRB_WMI_FLAGS_ADAPTER_REQUEST è impostata e che PathId, TargetId e Lun sono riservati. In caso contrario, WMIFlags sarà NULL, che indica 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ù flag seguenti:
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 nessun trasferimento di dati con questa richiesta. Se questa operazione è 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 in precedenza è stato negoziato I/O sincrono, l'HBA deve rinegoziare per I/O asincrona 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 un'esecuzione, il driver miniport deve aggiornare questo membro al numero di byte effettivamente trasferiti.
TimeOutValue
Indica l'intervallo in secondi in cui 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 di tempo perché il driver di porta è già in corso.
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 nella PORT_CONFIGURATION_INFORMATION per l'HBA. Un driver miniport non può trasferire i dati direttamente nel buffer usando DMA.
DataPath
Specifica il percorso dei 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 usare questo membro se imposta SrbExtensionSize su zero nella 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
La classe di archiviazione e i driver di filtro windows NT possono inviare SRB WMI al driver di porta di sistema. Il driver di porta di sistema gestirà determinate richieste WMI per conto dei driver miniport. Se il driver di porta non riesce a 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 di 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 | storport.h (include Storport.h, Srb.h, Storport.h, Minitape.h) |