Condividi tramite


Funzione SCSIPortWmiPostProcess (SCSIwmi.h)

La routine SCSIPortWmiPostProcess aggiorna un contesto di richiesta per una SRB 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

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

Parametri

[in] RequestContext

Puntatore al contesto della richiesta per questa 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 BufferUsed 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 la SRB.

Valore restituito

nessuno

Osservazioni

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

Per gli SRBs sincroni, viene chiamato SCSIPortWmiPostProcess nella routine di callback.

Per gli SRB in sospeso, SCSIPortWmiPostProcess viene chiamato 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 a o maggiore di bufferUsed devono avere esito positivo. Ciò deve 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 di dati di input della SRB deve avere informazioni sufficienti per determinare il valore esatto BufferUsed . Se il buffer 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 e quindi impostare SRB_STATUS_SUCCESS e indicare l'errore nel contenuto del buffer di output.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione SCSIwmi.h (includere Miniport.h, SCSI.h)

Vedi anche

SCSIWMI_REQUEST_CONTEXT

SCSIPortWmiDispatchFunction

SCSIPortWmiGetReturnSize

SCSIPortWmiGetReturnStatus