Condividi tramite


struttura SCSI_WMI_REQUEST_BLOCK (srb.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 potrebbero essere modificati o non disponibili in futuro. È invece consigliabile usare il driver Storport e i modelli di driver 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 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)

Vedi anche

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction