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.
Kullanıcı moduyla paylaşılmayan bölümler ve görünümler oluşturan sürücülerin, bölümler ve görünümlerle çalışırken aşağıdaki protokolü kullanması gerekir:
Sürücü, bölüm nesnesine bir tutamac açarken çekirdek tutamacı kullanmalıdır. Sürücüler, bir tanıtıcıyı sistem işleminde oluşturarak veya tanıtıcı için OBJ_KERNEL_HANDLE özniteliğini belirterek bir tanıtıcının çekirdek tanıtıcısı olduğundan emin olabilir. Daha fazla bilgi için bkz. Nesne Tanıtıcıları.
Görünüm yalnızca bir sistem iş parçacığından eşlenmelidir. (Aksi takdirde, görünüme bağlamı oluşturulduğu işlemden erişilebilir.) Sürücü, eşleme işlemini gerçekleştirmek için bir sistem çalışan iş parçacığı kullanarak görünümün sistem işleminden eşlendiğinden emin olabilir. Daha fazla bilgi için bkz. Sistem Çalışanı İş Parçacıkları ve Sürücü İş Parçacığı Bağlamı.
Bir görünümü kullanıcı modu işlemiyle paylaşan sürücülerin bölümler ve görünümlerle çalışırken aşağıdaki protokolü kullanması gerekir:
Kullanıcı modu işleminin değil sürücünün bölüm nesnesini oluşturması ve görünümleri eşlemesi gerekir.
Daha önce belirtildiği gibi, sürücü, bölüm nesnesine bir tanıtıcı açarken bir çekirdek tutamacı kullanmalıdır. Sürücüler, bir tanıtıcıyı sistem işleminde oluşturarak veya tanıtıcı için OBJ_KERNEL_HANDLE özniteliğini belirterek bir tanıtıcının çekirdek tanıtıcısı olduğundan emin olabilir. Daha fazla bilgi için bkz. Nesne Tanıtıcıları.
Görünüm, onu paylaşan işlemin iş parçacığı bağlamında haritalanır. En üst düzey sürücü, dispatchDeviceControl gibi bir dağıtım yordamında eşleme işlemini gerçekleştirerek görünümün geçerli işlem bağlamında eşlendiğinden emin olabilir. Alt düzey sürücülerin dağıtım yordamları rastgele bir iş parçacığı bağlamında çalışır ve bu nedenle bir dağıtım yordamındaki bir görünümü güvenli bir şekilde eşleyemez. Daha fazla bilgi için bkz . Sürücü İş Parçacığı Bağlamı.
Sürücü içindeki görünüme tüm bellek erişimleri, try-except blokları ile korunmalıdır. Kötü amaçlı bir kullanıcı modu uygulaması görünümün eşlemesini kaldırabilir veya görünümün koruma durumunu değiştirebilir. Ya bir deneme-yakalama bloğu ile korunmazsa, sistem çökmesine neden olabilir. Daha fazla bilgi için bkz. İşleme Özel Durumları.
Sürücü ayrıca görünümün içeriğini gerektiği gibi doğrulamalıdır. Sürücü yazılım geliştiricisi, görünüme yalnızca güvenilen bir kullanıcı modu bileşeni tarafından erişim sağlanacağını varsayamaz.
Bir bölüm nesnesini kullanıcı modu uygulamasıyla paylaşması gereken bir sürücü (kendi görünümlerini oluşturabilmesi gerekir) aşağıdaki protokolü kullanmalıdır:
Kullanıcı modu işleminin değil sürücünün bölüm nesnesini oluşturması gerekir. Sürücüler hiçbir zaman kullanıcı modundan aktarılan bir tanıtıcı kullanmamalıdır.
Tanıtıcıyı kullanıcı moduna geçirmeden önce, sürücünün bölüm nesnesine başvuru almak için ObReferenceObjectByHandle'ı çağırması gerekir. Bu, kötü amaçlı bir uygulamanın tanıtıcıyı kapatarak bölüm nesnesini silmesini engeller. Nesne referansı sürücünün cihaz uzantısına kaydedilmelidir.
Sürücü artık bölüm nesnesini kullanmadıktan sonra nesne başvuruyu serbest bırakmak için ObDereferenceObject çağrısı yapmalıdır.
Microsoft Windows Server 2003 Service Pack 1 (SP1) ve sonraki sürümleri çalıştıran sistemlerde, \Device\PhysicalMemory'yi yalnızca çekirdek modu sürücüleri açabilir. Ancak, sürücüler bir kullanıcı uygulamasına referans verebilir. Güvenlik sorunlarını önlemek için yalnızca sürücünün güvendiği kullanıcı uygulamalarına \Device\PhysicalMemory erişimi verilmelidir.