Partilhar via


Configuração de IRPs em controladores intermédios

Qualquer driver intermediário em camadas entre um driver de sistema de arquivos e um driver de dispositivo de mídia removível deve configurar o local da pilha de E/S do driver de nível inferior seguinte em IRPs. A partir de pedidos de IRP_MJ_READ, IRP_MJ_WRITE e IRP_MJ_DEVICE_CONTROL de entrada, o driver intermediário deve copiar os seus próprios Flags de localização na pilha de E/S para a localização na pilha de E/S do próximo driver de nível inferior ao configurar essa localização para o driver inferior.

Se o driver intermediário aloca novos IRPs para drivers de mídia removível de nível inferior, ele deve configurar esses IRPs da seguinte maneira:

  • Para solicitações de transferência, ele deve configurar o contexto de thread em cada IRP alocado por driver a partir do valor em Tail.Overlay.Thread no IRP original.

  • Para solicitações IRP_MJ_READ, IRP_MJ_WRITE e IRP_MJ_DEVICE_CONTROL, é necessário copiar os Flags da localização da pilha de E/S do IRP original para cada IRP alocado pelo driver.

Caso contrário, o sistema de arquivos não pode manter a integridade dos dados de arquivo em cache nem fazer com que o usuário seja solicitado a remontar a mídia que contém um arquivo aberto.