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.
AddDevice yordamı yazarken aşağıdaki tasarım yönergelerini göz önünde bulundurun:
Bir filtre sürücüsü AddDevice yordamının hizmet vermesi gerekmeyen bir cihaz için çağrıldığını belirlerse, cihaz yığınının geri kalanının cihaza yüklenmesine izin vermek için filtre sürücüsünün STATUS_SUCCESS döndürmesi gerekir. Filtre sürücüsü bir cihaz nesnesi oluşturmaz veya cihaz yığınına eklemez; filtre sürücüsü yalnızca başarı döndürür ve sürücülerin geri kalanının yığına eklenmesine izin verir.
Sürücü, kullandığı çekirdek tanımlı nesneler ve yönetici döndürme kilitleri için genellikle bir cihaz nesnesinin cihaz uzantısında depolama alanı sağlamalıdır. Sürücü ayrıca G/Ç yöneticisinden veya diğer sistem bileşenlerinden alınan belirli nesnelere yönelik işaretçiler için depolama alanı sağlamalıdır.
Sürücünün ihtiyaçları için, uzun vadeli G/Ç arabellekleri veya bir görünüm listesi gibi ek sistem-uzay belleği ayırmaya karar verebilirsiniz. Bu durumda AddDevice yordamı aşağıdaki yordamları çağırabilir:
Sayfalı veya sayfasız sistem alanı belleği için ExAllocatePoolWithTag
Sayfalanmış veya sayfalanmamış bir görünüm listesi başlatmak için ExInitializePagedLookasideList veya ExInitializeNPagedLookasideList
Sürücünün cihaza ayrılmış bir iş parçacığı varsa veya çekirdek tanımlı dağıtıcı nesnelerinde beklerse, AddDevice rutini, çekirdek dağıtıcı nesnelerini başlatabilir.
Sürücü herhangi bir yönetici dönüş kilidi kullanıyorsa veya kesme dönüş kilidi için depolama alanı sağlıyorsa , AddDevice yordamı bu döndürme kilitlerini başlatabilir. Daha fazla bilgi için bkz . Spin Locks .
IoCreateDevice çağrılırken dosya açma güvenliğini sıkın.
IoCreateDevice çağrısında FILE_DEVICE_SECURE_OPEN özelliğini belirtin. Bu özellik Windows NT 4.0 SP5 ve sonraki sürümlerde desteklenir. G/Ç yöneticisini tüm açık istekler için cihaz nesnesi üzerinde güvenlik denetimleri gerçekleştirmeye yönlendirir. FILE_DEVICE_SECURE_OPEN özelliği cihazın sınıf yükleyicisi INF'sinde veya cihazın INF'sinde ayarlanmadıysa ve sürücüler açıklarda kendi güvenlik denetimlerini gerçekleştirmiyorsa satıcılar IoCreateDevice çağrılarında bu özelliği belirtmelidir. (Daha fazla bilgi için bkz. Cihaz Ad Alanı Erişimini Denetleme.)
Bir sürücü IoCreateDevice çağırdığında FILE_DEVICE_SECURE_OPEN özelliğini ayarlarsa, G/Ç yöneticisi cihaz nesnesinin güvenlik tanımlayıcısını herhangi bir göreli açma veya sondaki dosya adı içeren açma işlemlerine uygular. Örneğin, \Device\foo için FILE_DEVICE_SECURE_OPEN ayarlandıysa ve \Device\foo yalnızca yönetici tarafından açılabilirse, \Device\foo\abc yönetici tarafından da açılabilir. Ancak G/Ç yöneticisi, normal bir kullanıcının \Device\foo ve \Device\foo\abc'yi açmasını engeller.
Bir cihaz için bir sürücü bu özelliği ayarlarsa, PnP yöneticisi bu özelliği ilgili cihazın tüm cihaz nesnelerine yayar.
Önemli
Bu konuda açıklanan ExAllocatePool DDI'leri Windows 10, sürüm 2004'te kullanım dışı bırakılmıştır ve ExAllocatePool2 ve ExAllocatePool3ile değiştirilmiştir. Daha fazla bilgi için bkz. ExAllocatePool2 ve ExAllocatePool3 için kullanım dışı bırakılmış ExAllocatePool çağrılarını güncelleştirme.