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