Aracılığıyla paylaş


Cihaz Nesnesinde Bayrakları Denetleme

Herhangi bir çıkarılabilir medyaya yönelik G/Ç işlemi talep eden IRP için, bir çıkarılabilir medya cihaz sürücüsü, DeviceObject->Flags içinde DO_VERIFY_VOLUME'un zaten ayarlanmış olup olmadığını belirlemelidir. Bu değer ayarlanırsa, sürücü aşağıdakileri yapmalıdır:

  • IRP_MJ_READ, IRP_MJ_WRITE ve IRP_MJ_DEVICE_CONTROL istekleri için SL_OVERRIDE_VERIFY_VOLUME sürücünün IO_STACK_LOCATION yapısının Bayraklar üyesinde ayarlanıp ayarlanmadığını denetleyin. Bu durumda, istenen işleme devam edin.

    Temel alınan medyanın mantıksal yapısı hakkında bilgi döndüren cihaz denetimi istekleri, bir IFS çıkarılabilir medya birimini bağladığında veya yeniden bağladığında G/Ç yığını konumunun Bayraklar üyesinde SL_OVERRIDE_VERIFY_VOLUME ayarlanmıştır.

  • Aksi halde, sürücünün, DO_VERIFY_VOLUME DeviceObject-Flags> içinde ayarlanmışken, ilgili sürücü, cihaz ya da bölüm için G/Ç isteklerini gerçekleştirmeyi reddetmesi gerekiyor. Çıkarılabilir medya sürücüsünün, FSD çıkarılabilir medya sürücüsünün DeviceObject-Flags> içindeki DO_VERIFY_VOLUME'u temizleyene kadar ilgili cihaza gönderilen I/O İstek Paketlerini (IRP) reddetmesi gerekir.

DO_VERIFY_VOLUME bayrağı ayarlandığında ve önceki aktarım istekleri için SL_OVERRIDE_VERIFY_VOLUME bayrağı ayarlanmadığında, çıkarılabilir medya cihaz sürücüsü IRP'leri düzgün bir şekilde yönetmezse, dosya sistemi önbelleğe alınan dosya verilerinin bütünlüğünü koruyamayacak veya kullanıcıdan açık bir dosyayı içeren medyayı yeniden bağlamasının istenmesini sağlayamayacaktır.