Condividi tramite


Controllo dei flag nell'oggetto Device

Per ogni IRP che richiede un'operazione di I/O da supporti rimovibili, un driver di dispositivo multimediale rimovibile deve determinare se DO_VERIFY_VOLUME è già impostato nei relativi flag DeviceObject>. Se questo valore è impostato, il driver deve eseguire le operazioni seguenti:

  • Per IRP_MJ_READ, IRP_MJ_WRITE e richieste di IRP_MJ_DEVICE_CONTROL , controllare se SL_OVERRIDE_VERIFY_VOLUME è impostato nel membro Flagsdella struttura IO_STACK_LOCATION del driver. In caso affermativo, continuare l'operazione richiesta.

    Le richieste di controllo del dispositivo che restituiscono informazioni sulla struttura logica del supporto sottostante hanno SL_OVERRIDE_VERIFY_VOLUME impostato nel membro Flags del percorso dello stack I/O quando un ifS monta o rimonta un volume multimediale rimovibile.

  • In caso contrario, il driver deve rifiutare di eseguire richieste di I/O per l'unità, il dispositivo o la partizione corrispondenti mentre DO_VERIFY_VOLUME è impostato nei flag DeviceObject>. Un driver multimediale rimovibile deve interrompere i runtime di integrazione inviati al dispositivo corrispondente fino a quando il file FSD non cancella DO_VERIFY_VOLUME nei flag DeviceObject-Flag> del driver multimediale rimovibile.

Se un driver di dispositivo multimediale rimovibile non genera errori irP quando DO_VERIFY_VOLUME è impostato e SL_OVERRIDE_VERIFY_VOLUME non è impostato per le richieste di trasferimento precedenti, il file system non può né mantenere l'integrità dei dati dei file memorizzati nella cache né chiedere all'utente di rimontare il supporto che contiene un file aperto.