Partilhar via


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

Consulte também

IRP

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

do IoCallDriver

IoSetCompletionRoutine