Compartir a través de


Función IofCompleteRequest (wdm.h)

La macro IoCompleteRequest indica que el autor de la llamada ha completado todo el procesamiento de una solicitud de E/S determinada y devuelve el IRP especificado al administrador de E/S.

IoCompleteRequest encapsula IofCompleteRequest.

Sintaxis

void IofCompleteRequest(
  PIRP  Irp,
  CCHAR PriorityBoost
);

Parámetros

Irp

Puntero al IRP que se va a completar.

PriorityBoost

Especifica una constante CCHAR definida por el sistema por la que se incrementa la prioridad en tiempo de ejecución del subproceso original que solicitó la operación. Este valor se IO_NO_INCREMENT si el subproceso original solicitó una operación que el controlador pudo completar rápidamente (por lo que el subproceso solicitante no se compensa por su espera asumida de que se complete la E/S) o si el IRP se ha completado con un error. De lo contrario, el conjunto de constantes PriorityBoost es específico del tipo de dispositivo. Consulte Ntddk.h o Wdm.h para ver estas constantes.

Valor devuelto

None

Observaciones

Cuando un controlador ha terminado todo el procesamiento de un IRP determinado, llama a IoCompleteRequest. El administrador de E/S comprueba el IRP para determinar si algún controlador de nivel superior ha configurado una rutina de IoCompletion para irP. Si es así, se llama a cada rutina de IoCompletion , a su vez, hasta que cada controlador en capas de la cadena haya completado el IRP.

Cuando todos los controladores han completado un IRP determinado, el administrador de E/S devuelve el estado al solicitante original de la operación. Tenga en cuenta que un controlador de nivel superior que configura un IRP creado por el controlador debe proporcionar una rutina de IoCompletion para liberar el IRP que creó.

Nunca llame a IoCompleteRequest mientras mantiene un bloqueo de número. Intentar completar un IRP mientras mantiene un bloqueo de giro puede provocar interbloqueos.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento 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)

Consulte también

IoSetCompletionRoutine