Partilhar via


Verificando sinalizadores no objeto device

Para cada IRP que solicita uma operação de E/S de/para mídia removível, um driver de dispositivo de mídia removível deve determinar se DO_VERIFY_VOLUME já está definido em seu DeviceObject-Flags>. Se esse valor for definido, o driver deverá fazer o seguinte:

  • Para solicitações de IRP_MJ_READ, IRP_MJ_WRITE e IRP_MJ_DEVICE_CONTROL, marcar se SL_OVERRIDE_VERIFY_VOLUME está definido no membro Flags da estrutura de IO_STACK_LOCATION do driver. Se for, continue a operação solicitada.

    As solicitações de controle de dispositivo que retornam informações sobre a estrutura lógica da mídia subjacente SL_OVERRIDE_VERIFY_VOLUME definidas no membro Flags do local da pilha de E/S quando um IFS monta ou remonta um volume de mídia removível.

  • Caso contrário, o driver deve se recusar a realizar solicitações de E/S para a unidade, dispositivo ou partição correspondentes enquanto DO_VERIFY_VOLUME está definido em seu DeviceObject-Flags>. Um driver de mídia removível deve falhar nas IRPs enviadas ao dispositivo correspondente até que o FSD limpe DO_VERIFY_VOLUME no DeviceObject-Flags> do driver de mídia removível.

Se um driver de dispositivo de mídia removível não falhar em IRPs quando DO_VERIFY_VOLUME estiver definido e SL_OVERRIDE_VERIFY_VOLUME não estiver definido para as solicitações de transferência anteriores, 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.