Condividi tramite


Funzione ScsiPortWmiPostProcess (scsiwmi.h)

La routine ScsiPortWmiPostProcess aggiorna un contesto di richiesta per un SRB WMI.

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

Sintassi

void ScsiPortWmiPostProcess(
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] UCHAR                    SrbStatus,
  [in] ULONG                    BufferUsed
);

Parametri

[in] RequestContext

Puntatore al contesto della richiesta per questo SRB.

[in] SrbStatus

Specifica qualsiasi stato SRB valido. Se il buffer di output passato al driver miniport era troppo piccolo per contenere tutti i dati di una richiesta, il driver miniport imposta SrbStatus su SRB_STATUS_DATA_OVERRUN.

[in] BufferUsed

Se SrbStatus indica l'esito positivo, il driver miniport imposta bufferusato sul numero di byte di dati scritti nel buffer. Se SrbStatus è SRB_STATUS_DATA_OVERRUN, il driver miniport imposta BufferUsed sul numero di byte necessari per completare correttamente SRB.

Valore restituito

Nessuno

Osservazioni

Un driver miniport deve chiamare ScsiPortWmiPostProcess dopo l'elaborazione della richiesta SRB WMI ed è pronto per essere completato.

Per le SBS sincrone, ScsiPortWmiPostProcess viene chiamato nella routine di callback.

Per i database SRB in sospeso, viene chiamato ScsiPortWmiPostProcess dopo l'elaborazione di SRB e prima del completamento.

Se un driver miniport imposta SrbStatus su SRB_STATUS_DATA_OVERRUN e imposta BufferUsed, le SRB WMI identiche successive con un buffer allocato uguale o maggiore di BufferUsed byte dovrebbero avere esito positivo. Ciò dovrebbe essere ottenuto se il driver imposta il valore esatto per BufferUsed necessario per completare la richiesta quando si chiama ScsiPortWmiPostProcess con SrbStatus uguale a SRB_STATUS_DATA_OVERRUN. Per una struttura di output di dimensioni variabili, il buffer dei dati di input di SRB deve avere informazioni sufficienti per determinare il valore buffer esatto. Se il buffer di dati di input non contiene informazioni sufficienti, il driver non deve mai avere esito negativo dello stesso SRB due volte con SRB_STATUS_DATA_OVERRUN. Al contrario, il driver deve impostare SRB_STATUS_DATA_OVERRUN e richiedere prima le dimensioni minime necessarie per il buffer di output, quindi impostare SRB_STATUS_SUCCESS e indicare l'errore nel contenuto del buffer di output.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione scsiwmi.h (include Miniport.h, Scsi.h)

Vedere anche

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus