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 |