Configuração de IRPs em drivers intermediários
Qualquer driver intermediário em camadas entre um driver do sistema de arquivos e um driver de dispositivo de mídia removível deve configurar o local de pilha de E/S do próximo driver de nível inferior em IRPs. De IRP_MJ_READ de entrada, IRP_MJ_WRITE e solicitações de IRP_MJ_DEVICE_CONTROL , o driver intermediário deve copiar seu próprio local de pilha de E/S Sinalizadores para o local de pilha de E/S do próximo driver de nível inferior quando ele configura o local da pilha de E/S para o driver inferior.
Se o driver intermediário alocar novos IRPs para drivers de mídia removível de nível inferior, ele deverá configurar esses IRPs da seguinte maneira:
Para solicitações de transferência, ele deve configurar o contexto de thread em cada IRP alocado pelo driver do valor em Tail.Overlay.Thread no IRP original.
Para IRP_MJ_READ, IRP_MJ_WRITE e solicitações de IRP_MJ_DEVICE_CONTROL , ele deve copiar os Sinalizadores de local de pilha de E/S do IRP original para cada IRP alocado pelo driver.
Caso contrário, o sistema de arquivos não poderá manter a integridade dos dados de arquivo armazenados em cache nem fazer com que o usuário seja solicitado a remontar a mídia que contém um arquivo aberto.