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 mestre 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 IRP mestre que foi a entrada para a rotina de Expedição de um 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.
Valor de retorno
IoMakeAssociatedIrp retorna um ponteiro para o IRP associado ou retorna um ponteiro NULL se um IRP não puder ser alocado.
Observações
Somente um driver de nível mais alto pode chamar essa rotina.
O gerente de E/S conclui o IRP mestre automaticamente quando drivers inferiores tiverem concluído todos os IRPs associados, desde que o chamador não tenha definido sua rotina de de IoCompletion em um IRP associado e retornado STATUS_MORE_PROCESSING_REQUIRED de sua rotina de IoCompletion. Nessas circunstâncias, o chamador deve concluir explicitamente o IRP mestre quando esse driver tiver determinado que todos os IRPs associados foram concluídos.
Somente o IRP mestre está associado a um thread; OS IRPs associados não são. Por esse motivo, o gerente de E/S não pode chamar Cancelar rotinas de para IRPs associados quando um thread é encerrado. Quando o thread do IRP mestre é encerrado, o gerente de E/S chama a rotina de Cancelar do IRP mestre. A rotina Cancelar é responsável por rastrear todos os IRPs associados e chamar IoCancelIrp para cancelá-los.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 2000. |
da Plataforma de Destino | Universal |
cabeçalho | ntddk.h (inclua Ntddk.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |