Funzione ScsiPortWmiDispatchFunction (scsiwmi.h)

La routine ScsiPortWmiDispatchFunction è una routine dispatch per i driver miniport che supportano 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

BOOLEAN ScsiPortWmiDispatchFunction(
  [in] PSCSI_WMILIB_CONTEXT     WmiLibInfo,
  [in] UCHAR                    MinorFunction,
  [in] PVOID                    DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] PVOID                    DataPath,
  [in] ULONG                    BufferSize,
  [in] PVOID                    Buffer
);

Parametri

[in] WmiLibInfo

Puntatore a una struttura SCSI_WMILIB_CONTEXT che contiene informazioni di registrazione per i blocchi dati e i blocchi eventi di un driver miniport e definisce i punti di ingresso per le routine di callback della libreria WMI del driver miniport.

[in] MinorFunction

Indica l'azione WMI da eseguire. Il driver miniport imposta MinorFunction su Srb-WmiSubFunction> dall'input SRB.

[in] DeviceContext

Puntatore a un valore di contesto definito dal driver miniport. Il driver di porta passerà DeviceContext alla routine di callback HwScsiWmiXxx del driver miniport. Questo valore in genere punta a una struttura HW_DEVICE_EXTENSION.

[in] RequestContext

Puntatore a una struttura SCSIWMI_REQUEST_CONTEXT che contiene informazioni di contesto per wmi SRB. Se SRB può eseguire la penna, il driver miniport deve allocare questa struttura dall'estensione SRB perché il contesto della richiesta deve rimanere valido fino a quando ScsiPortWmiPostProcess restituisce con lo stato finale di restituzione SRB e le dimensioni del buffer. ScsiPortWmiDispatchFunction passerà RequestContext alla routine di callback del driver miniport che elabora questa richiesta.

[in] DataPath

Puntatore a un GUID che rappresenta il blocco di dati associato alla richiesta. Il driver miniport imposta DataPath su Srb-DataPath> dall'input SRB.

[in] BufferSize

Specifica le dimensioni in byte del buffer di dati. Il driver miniport imposta BufferSize su Srb-DataTransferLength> dall'input SRB.

[in] Buffer

Puntatore al buffer di dati. Il driver miniport imposta Buffer su Srb-DataBuffer> dall'SRB di input.

Valore restituito

ScsiPortWmiDispatchFunction restituisce TRUE se la richiesta è in sospeso o FALSE se la richiesta è stata completata.

Commenti

Quando un driver miniport riceve un SRB in cui il membro Function è impostato su SRB_FUNCTION_WMI, chiama ScsiPortWmiDispatchFunction con parametri di richiesta, incluso un puntatore a una struttura di SCSI_WMILIB_CONTEXT inizializzata. Questa struttura contiene informazioni sui blocchi di dati e sui blocchi di eventi del driver miniport e definisce i punti di ingresso per le routine di callback HwScsiWmiXxx del driver miniport.

ScsiPortWmiDispatchFunction conferma che SRB è una richiesta WMI e determina se il blocco specificato dalla richiesta è valido per il driver miniport. Se queste condizioni vengono soddisfatte, ScsiPortWmiDispatchFunction elabora sRB chiamando il punto di ingresso HwScsiWmiXxx appropriato nella struttura di SCSI_WMILIB_CONTEXT del driver miniport. Se il driver miniport non definisce un punto di ingresso per una routine HwScsiWmiXxx facoltativa, il driver della porta gestisce la richiesta.

In entrambi i casi, dopo la restituzione di ScsiPortWmiDispatchFunction , il driver miniport deve eseguire le operazioni seguenti per le richieste che non esegue la penna:

  • Impostare Srb->DataTransferLength sul valore restituito da ScsiPortWmiGetReturnSize
  • Impostare Srb->SrbStatus sul valore restituito da ScsiPortWmiGetReturnStatus
  • Chiamare ScsiPortNotification con RequestComplete e di nuovo con NextRequest

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione scsiwmi.h (include Miniport.h, Scsi.h)

Vedi anche

SCSIWMI_REQUEST_CONTEXT

SCSI_WMILIB_CONTEXT

ScsiPortNotification

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess