Condividi tramite


SCSI_WMI_REQUEST_BLOCK struttura (storport.h)

Questa struttura è una versione speciale di un SCSI_REQUEST_BLOCK da usare con i comandi WMI.

Nota I modelli di driver di porta SCSI e miniport SCSI possono essere modificati o non disponibili in futuro. È invece consigliabile usare i modelli di driver Storport e Miniport Storport.
 

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)

Vedi anche

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

SCSIPortNotification

SCSIPortWmiDispatchFunction