Funzione ScsiPortWmiPostProcess (scsiwmi.h)
La routine ScsiPortWmiPostProcess aggiorna un contesto di richiesta per un SRB WMI.
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) |