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) |