Função IoMakeAssociatedIrp (ntddk.h)
Essa rotina é reservada para uso por sistemas de arquivos e drivers de filtro do sistema de arquivos. A rotina IoMakeAssociatedIrp aloca e inicializa um IRP a ser associado a um IRP master enviado a um driver de nível mais alto, permitindo que o chamador divida a solicitação original e envie IRPs associados para drivers de nível inferior.
Sintaxe
PIRP IoMakeAssociatedIrp(
[in] PIRP Irp,
[in] CCHAR StackSize
);
Parâmetros
[in] Irp
Ponteiro para o MASTER IRP que foi inserido em uma rotina de expedição de driver de nível mais alto.
[in] StackSize
Especifica o número de locais de pilha a serem alocados para o IRP associado. O valor deve ser pelo menos igual ao StackSize do objeto de dispositivo do driver mais baixo, mas o IRP associado pode ter um local de pilha adicional para o chamador.
Retornar valor
IoMakeAssociatedIrp retorna um ponteiro para o IRP associado ou retorna um ponteiro NULL se um IRP não puder ser alocado.
Comentários
Somente um driver de nível mais alto pode chamar essa rotina.
O gerente de E/S conclui a master IRP automaticamente quando drivers inferiores tiverem concluído todos os IRPs associados, desde que o chamador não tenha definido sua rotina de IoCompletion em um IRP associado e retornado STATUS_MORE_PROCESSING_REQUIRED de sua rotina IoCompletion. Nessas circunstâncias, o chamador deve concluir explicitamente a master IRP quando esse driver determinou que todos os IRPs associados foram concluídos.
Somente a master IRP está associada a um thread; os IRPs associados não estão. Por esse motivo, o gerente de E/S não pode chamar Rotinas de Cancelamento para IRPs associados quando um thread é encerrado. Quando o thread do MASTER IRP é encerrado, o gerente de E/S chama a rotina cancelar do IRP master. A rotina Cancelar é responsável por rastrear todos os IRPs associados e chamar IoCancelIrp para cancelá-los.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | ntddk.h (inclua Ntddk.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |