Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
BypassIO Hakkında
BypassIO özelliği, dosyalardan okumak için iyileştirilmiş bir G/Ç yolu sunar. Bu yol, Windows'ta yeni nesil oyunların yüklenmesi ve çalıştırılmasına yönelik G/Ç taleplerini karşılamaya yardımcı olan okuma işleminin CPU ek yükünü azaltır. BypassIO, Windows üzerinde DirectStorage'i destekleyen altyapının bir parçasıdır. Windows 11'den itibaren kullanılabilir.
Mini filtrelerin BypassIO için destek uygulaması ve BypassIO'yu mümkün olduğunca etkin tutmanız önemlidir. Filtre desteği olmadan, oyun performansı düşer ve son kullanıcılar için kötü bir oyun deneyimine neden olur.
Gelecekteki Windows sürümleri, oyun oynamanın ötesinde daha geniş uygulama kullanımları içerir.
BypassIO, tanıtıcı başına bir kavramdır. BypassIO isteğinde bulunurken, açık bir dosya tanıtıcısı için istekte bulunursunuz. BypassIO'nun bu dosya için diğer tanıtıcılar üzerinde hiçbir etkisi yoktur.
FSCTL_MANAGE_BYPASS_IO ve eşdeğer bir IOCTL_STORAGE_MANAGE_BYPASS_IO bu altyapının bir parçası olarak eklendi. Mini filtreler FSCTL_MANAGE_BYPASS_IO işlerken dosya sistemleri birim ve depolama yığınlarına IOCTL_STORAGE_MANAGE_BYPASS_IO gönderir. Bu denetim kodları tanınabilir olacak şekilde tasarlanmıştır: her ikisi de BypassIO isteğini başarısız olan sürücünün kimliğini ve veto etme nedenini döndürür.
Bu makalede, dosya sistemi filtresi ve depolama yığınları genelinde mimari ayrıntılar ve BypassIO'nun bir mini filtre sürücüsünde nasıl uygulanacaklarına ilişkin bilgiler sağlanmaktadır. Depolama sürücülerine özgü BypassIO bilgileri için bkz. Depolama sürücüleri için BypassIO.
BypassIO desteğinin kapsamı
Windows 11'den başlayarak BypassIO desteği aşağıdaki özellikleri içerir:
Yalnızca Windows istemci sistemlerinde destek. Sunucu sistemi desteği gelecek bir sürümde sunulacaktır.
Yalnızca NVMe depolama cihazlarında destek. Diğer depolama teknolojileri için destek gelecek bir sürümde sunulacaktır.
Yalnızca NTFS dosya sisteminde destek. Diğer dosya sistemleri için destek gelecek bir sürümde sunulacaktır.
Yalnızca önbelleğe alınmamış okuma desteği. Önbelleğe alınmamış yazma desteği gelecekteki bir sürümde sunulacaktır.
Yalnızca dosyalarda destek (dizin veya birim tanıtıcılarında desteklenmez).
BypassIO nasıl çalışır?
BypassIO özellikli bir FileHandle üzerinde NtReadFile'ı çağırdığınızda, işlem genellikle dosya sistemi yığınının, birim yığınının ve depolama yığınının tamamında geçiş yapan geleneksel G/Ç yığınından geçmez. Bunun yerine, işlem doğrudan G/Ç yöneticisinden (NTFS) dosya sistemine, ardından disk (classpnp) sürücüsüne ve ardından StorNVMe sürücüsüne akar. Tamamen BypassIO özellikli bir FileHandle ile:
- İşlem tüm dosya sistemi filtrelerini atlar.
- İşlem tüm birim yığını filtrelerini atlar.
- İşlem, disk sürücüsünün üzerinde ve disk ile StorNVMe sürücüleri arasında bulunan tüm depolama yığını filtrelerini ve sürücülerini atlar.
Dosya sistemi filtre yığınının BypassIO'yu desteklediği ancak birim ve depolama yığınının desteklemediği senaryolarda:
- IOS'lar filtre yığınını atlar.
- Okuma G/Ç işlemleri hâlâ birim ve depolama yığınından geçiyor.
Bu destek düzeyi kısmi BypassIO olarak bilinir.
BypassIO için DDI değişiklikleri ve eklemeleri
BypassIO desteği sağlamak için filtre sürücüleriyle ilgili aşağıdaki DDI'ler eklendi:
- FltVetoBypassIo işlevi
- FS_BPIO_INFLAGS numaralandırıcı
- FS_BPIO_INFO yapısı
- FS_BPIO_INPUT yapısı
- FS_BPIO_OPERATIONS numaralandırıcı
- FS_BPIO_OUTFLAGS numaralandırıcı
- FS_BPIO_OUTPUT yapısı
- FS_BPIO_RESULTS yapısı
- FSCTL_MANAGE_BYPASS_IO denetim kodu
- FsRtlGetBypassIoOpenCount işlevi
Ayrıca, aşağıdaki DDI'ler BypassIO'yu destekleyecek şekilde değiştirildi:
- FSRTL_ADVANCED_FCB_HEADER yapısına bir BypassIoOpenCount alanı eklendi. Dosya sistemi, şu anda BypassIO'nun etkin olduğu bir akışta benzersiz FileObjects sayısını korumak için bu alanı kullanır. Bu alanın eklenmesi, yapı boyutunu artırır. Windows 11'den başlayarak kullanılacak yapı sürümü FSRTL_FCB_HEADER_V4.
Diğer işlemlerin BypassIO özellikli tanıtıcılar üzerindeki etkisi
Bir tanıtıcıda BypassIO'nun etkinleştirilmesi diğer tanıtıcıları etkilemez. Ancak, BypassIO özellikli tanıtıcı üzerindeki diğer işlemler, aşağıdaki senaryolarda olduğu gibi BypassIO kullanımını etkiler:
BypassIO'nun etkin ve çalışır durumda olduğu bir dosyada Tutamacı A açıksa ve birisi (örneğin, başka bir iş parçacığı veya işlem) önbellekli veya belleğe eşlenmiş GÇ gerçekleştirmek için Tutamacı B'yi açarsa, Tutamacı B kapatılana kadar BypassIO A tutamacı üzerinde geçici olarak askıya alınır. Sistem bunun yerine eski verilerin oluşmaması için geleneksel G/Ç yolunu kullanır. Sistem, tüm veri bölümleri ve önbellek eşlemeleri kaldırılana kadar bu tanıtıcıda geleneksel G/Ç yolunu kullanmaya devam eder. Sonuç olarak, BypassIO'nun sürdürülebilmesi için filtrelerin tanıtıcı dosyayı kapatması gerekir.
BypassIO özellikli bir dosya seyrek olarak işaretlenirse, tüm BypassIO işlemleri geleneksel G/Ç yolunu kullanmaya başlar.
BypassIO özellikli bir dosyayı dolandırmak, tüm BypassIO işlemlerinin geleneksel G/Ç yolunu kullanmasına neden olur. Dolandırma tamamlandıktan sonra sistem bu tutamaçta BypassIO yoluna geri döner.
Mini filtrelerde BypassIO desteği uygulama
INF veya MANIFEST dosyalarınızı güncelleştirme
Windows 11'den başlayarak, filtre geliştiricileri sürücünüzün INF veya MANIFEST dosyalarındaki SupportedFeatures'aSUPPORTED_FS_FEATURES_BYPASS_IO eklemelidir. (Tüm etkin filtreler için "SprtFtrs" değerlerini görmek için yükseltilmiş bir komut istemi yazabilirsiniz fltmc instances .)
Uyarı
BypassIO'yu hiçbir zaman desteklememiş bir filtre hala SupportedFeatures durumuna SUPPORTED_FS_FEATURES_BYPASS_IO eklemeli ve ardından nedenini belirterek filtrenin içine uygun şekilde veto etmelidir.
Mini filtrelerin BypassIO'yu vetolamayı mümkün olduğunca en aza indirmesi önerilir.
Mini filtre, BypassIO'nun etkinleştirildiği bir birime ekleniyorsa ancak bu mini filtre SupportedFeatures ayarını SUPPORTED_FS_FEATURES_BYPASS_IO içerecek şekilde güncelleştirmediyse, bu birimde gerçekleştirilen tüm BypassIO işlemleri hemen engellenir ve geleneksel G/Ç yoluna geri döner ve bu da oyun performansının düşmesine neden olur.
IRP_MJ_READ veya IRP_MJ_WRITE işlemlerini filtrelemeyen minifiltreler, SupportedFeatures içinde SUPPORTED_FS_FEATURES_BYPASS_IO eklemiş gibi, otomatik olarak BypassIO desteğini kabul eder.
FS_BPIO_OP_ENABLE ve FS_BPIO_OP_QUERY işlemleri, katılmayan bağlı bir mini filtre varsa yığında başarısız olur.
BypassIO istekleri için desteği uygulayın
Mini filtreler, FSCTL_MANAGE_BYPASS_IO denetim kodu aracılığıyla gönderilen BypassIO istekleri için destek eklemelidir. Ayrıntılar için bkz . BypassIO işlemlerini destekleme .
BypassIO'nın çalışıp çalışmadığını belirleme
Eklenen bir fsutil komutu, FSCTL_MANAGE_BYPASS_IO içeren ve FS_BPIO_OP_QUERY işlemini belirten bir komutu sunar. Görüntülenen sonuçlar BypassIO'yu engelleyen ilk sürücüyü ve nedenini belirler.
> fsutil bypassIo state /v <path>
Burada< yol> bir birim, dizin veya belirli bir dosya adı olabilir ve /v isteğe bağlı bir ayrıntılı bayraktır.
Bu ilk örnekte, WOF mini filtresi BypassIO'yu kabul etmez. Komut fsutil bypassIo state c:\ yürütülürken aşağıdaki çıkış elde edilir:
BypassIo on "c:\" is not currently supported.
Status: 506 (At least one minifilter does not support bypass IO)
Driver: wof.sys
Reason: The specified minifilter does not support bypass IO.
Bu ikinci örnekte BitLocker'ın etkinleştirildiği bir sistemde yürütülürken fsutil bypassIO state /v c:\ aşağıdaki çıkış elde edilir:
BypassIo on "c:\" is partially supported
Volume stack bypass is disabled (fvevol.sys)
Status: 495 (The specified operation is not supported while encryption is enabled on the target object)
Reason: BitLocker Drive Encryption is enabled.
Storage Type: NVMe
Storage Driver: BypassIo compatible
Driver Name: stornvme.sys
NTFS'ye özgü davranış
Ntfs yerleşik dosyasında BypassIO'yu etkinleştirebilirsiniz; ancak dosya, yerleşik olduğu sürece geleneksel G/Ç yolunu alır. Dosyaya yapılan bir yazma işlemi dosyayı bellekte saklanamaz hale getirirse, sistem BypassIO yoluna geçer.
BypassIO etkin dosyasında NTFS sıkıştırmasını etkinleştiremezsiniz.
BypassIO etkin dosyasında NTFS şifrelemesini etkinleştirebilirsiniz. BypassIO duraklatıldı.
BypassIO yük boşaltma okuma/yazma işlemlerini etkilemez.