Função IofCompleteRequest (wdm.h)

A macro IoCompleteRequest indica que o chamador concluiu todo o processamento de uma determinada solicitação de E/S e está retornando o IRP especificado para o gerenciador de E/S.

IoCompleteRequest encapsula IofCompleteRequest.

Sintaxe

void IofCompleteRequest(
  PIRP  Irp,
  CCHAR PriorityBoost
);

Parâmetros

Irp

Ponteiro para o IRP a ser concluído.

PriorityBoost

Especifica uma constante CCHAR definida pelo sistema pela qual incrementar a prioridade de tempo de execução do thread original que solicitou a operação. Esse valor será IO_NO_INCREMENT se o thread original solicitou uma operação que o driver poderia concluir rapidamente (portanto, o thread solicitante não será compensado por sua espera presumida para que a E/S seja concluída) ou se o IRP for concluído com um erro. Caso contrário, o conjunto de constantes PriorityBoost é específico do tipo de dispositivo. Consulte Ntddk.h ou Wdm.h para obter essas constantes.

Retornar valor

Nenhum

Comentários

Quando um driver terminar todo o processamento de um determinado IRP, ele chamará IoCompleteRequest. O gerente de E/S verifica o IRP para determinar se algum driver de nível mais alto configurou uma rotina de IoCompletion para o IRP. Nesse caso, cada rotina IoCompletion é chamada, por sua vez, até que cada driver em camadas na cadeia conclua o IRP.

Quando todos os drivers tiverem concluído um determinado IRP, o gerente de E/S retornará status ao solicitante original da operação. Observe que um driver de nível superior que configura um IRP criado pelo driver deve fornecer uma rotina IoCompletion para liberar o IRP que ele criou.

Nunca chame IoCompleteRequest enquanto mantém um bloqueio de rotação. Tentar concluir um IRP enquanto mantém um bloqueio de rotação pode causar deadlocks.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI CompleteRequest, CompleteRequestStatusCheck, DoubleCompletion(wdm), HwStorPortProhibitedDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm)

Confira também

IoSetCompletionRoutine