Condividi tramite


Funzione IofCompleteRequest (wdm.h)

La macro IoCompleteRequest indica che il chiamante ha completato tutte le elaborazioni per una determinata richiesta di I/O e restituisce l'IRP specificato al gestore di I/O.

IoCompleteRequest esegue il wrapping di IofCompleteRequest.

Sintassi

void IofCompleteRequest(
  PIRP  Irp,
  CCHAR PriorityBoost
);

Parametri

Irp

Puntatore all'IRP da completare.

PriorityBoost

Specifica una costante CCHAR definita dal sistema in base alla quale incrementare la priorità di runtime del thread originale che ha richiesto l'operazione. Questo valore è IO_NO_INCREMENT se il thread originale ha richiesto un'operazione che il driver potrebbe completare rapidamente (quindi il thread richiedente non viene compensato per l'attesa presunta del completamento dell'I/O) o se l'IRP viene completato con un errore. In caso contrario, il set di costanti PriorityBoost è specifico del tipo di dispositivo. Per queste costanti, vedere Ntddk.h o Wdm.h.

Valore restituito

nessuno

Osservazioni

Al termine di tutta l'elaborazione per un determinato provider di risorse IRP, un driver chiama IoCompleteRequest. Il gestore di I/O controlla l'IRP per determinare se i driver di livello superiore hanno configurato una routine IoCompletion per IRP. In tal caso, ogni routine IoCompletion viene chiamata, a sua volta, fino a quando ogni driver a più livelli nella catena non ha completato l'IRP.

Quando tutti i driver hanno completato un determinato IRP, il gestore di I/O restituisce lo stato al richiedente originale dell'operazione. Si noti che un driver di livello superiore che configura un IRP creato dal driver deve fornire una routine IoCompletion per rilasciare l'IRP creato.

Non chiamare mai IoCompleteRequest tenendo premuto un blocco di rotazione. Il tentativo di completare un IRP tenendo premuto un blocco spin può causare deadlock.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI CompleteRequest, CompleteRequestStatusCheck, DoubleCompletion(wdm), HwStorPortProhibitedDDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm)

Vedi anche

IoSetCompletionRoutine