Función IoMakeAssociatedIrp (ntddk.h)

Esta rutina está reservada para que la usen los sistemas de archivos y los controladores de filtro del sistema de archivos. La rutina IoMakeAssociatedIrp asigna e inicializa un IRP para asociarse con un IRP maestro enviado a un controlador de nivel superior, lo que permite al autor de la llamada dividir la solicitud original y enviar IRP asociadas a controladores de nivel inferior.

Sintaxis

PIRP IoMakeAssociatedIrp(
  [in] PIRP  Irp,
  [in] CCHAR StackSize
);

Parámetros

[in] Irp

Puntero al IRP maestro que se ha introducido en una rutina de distribución del controlador de nivel superior.

[in] StackSize

Especifica el número de ubicaciones de pila que se van a asignar para el IRP asociado. El valor debe ser al menos igual que StackSize del objeto de dispositivo del controlador inferior siguiente, pero el IRP asociado puede tener una ubicación de pila adicional para el autor de la llamada.

Valor devuelto

IoMakeAssociatedIrp devuelve un puntero al IRP asociado o devuelve un puntero NULL si no se puede asignar un IRP.

Comentarios

Solo un controlador de nivel superior puede llamar a esta rutina.

El administrador de E/S completa el IRP maestro automáticamente cuando los controladores inferiores han completado todos los IRP asociados siempre que el autor de la llamada no haya establecido su rutina de IoCompletion en un IRP asociado y devuelva STATUS_MORE_PROCESSING_REQUIRED de su rutina de IoCompletion . En estas circunstancias, el autor de la llamada debe completar explícitamente el IRP maestro cuando ese controlador haya determinado que se completaron todas las IRP asociadas.

Solo el IRP maestro está asociado a un subproceso; los IRP asociados no. Por este motivo, el administrador de E/S no puede llamar a las rutinas Cancel para IRP asociadas cuando se cierra un subproceso. Cuando se cierra el subproceso del IRP maestro, el administrador de E/S llama a la rutina Cancel del IRP maestro. La rutina Cancelar es responsable de realizar un seguimiento de todos los IRP asociados y llamar a IoCancelIrp para cancelarlos.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Consulte también

IRP

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine