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.
Çerçeve isteği nesneleri, G/Ç yöneticisinin bir sürücüye gönderdiği G/Ç isteklerini temsil eder. Çerçeve tabanlı sürücüler, framework istek nesnesi yöntemlerini çağırarak her G/Ç isteğini işler.
Her G/Ç isteği bir WDM G/Ç istek paketi (IRP yapısı) içerir, ancak çerçeve tabanlı sürücülerin genellikle IRP yapısına erişmesi gerekmez.
Çoğu çerçeve isteği nesnesi çerçeve tarafından oluşturulur, ancak sürücünüz de istek nesneleri oluşturabilir.
Çerçeve Tarafından Oluşturulan İstek Nesneleri
Çerçeve tabanlı bir sürücü G/Ç yöneticisinden bir G/Ç istek paketi (IRP) aldığında, çerçeve IRP'yi durdurur ve bir çerçeve isteği nesnesi oluşturur. Çerçeve, istek nesnesini bir G/Ç kuyruğuna yerleştirir ve sürücü kuyruk için istek işleyicilerini kaydettiyse uygun işleyiciyi çağırır.
Aşağıdaki diyagramda, çerçeve bir okuma işlemi için istek nesnesi oluşturduğunda oluşan adımlar gösterilmektedir.
Aşağıdaki adımlar, önceki diyagramdaki sayılara karşılık gelir:
Kullanıcı modu uygulaması, Microsoft Win32 ReadFile işlevini çağırarak dosyayı okur.
ReadFile işlevi, çekirdek modunda çalışan G/Ç yöneticisini çağırır.
Girdi/Çıktı yöneticisi bir IRP yapısı ayırır ve yapıda bir IRP_MJ_READ işlev kodunu depolar.
G/Ç yöneticisi, IRP yapısına bir işaretçi geçirerek xsürücüsü için DispatchRead standart sürücü işlevini çağırır. Sürücü x çerçeve tabanlı bir sürücü olduğundan, çerçeve sürücünün DispatchRead yordamını sağlar.
Çerçeve, IRP yapısını temsil eden bir istek nesnesi oluşturur. Çerçeve, istek nesnesini sürücünün kuyruk nesnelerinden birine ekler.
Çerçeve, sürücünün EvtIoRead istek işleyicisini çağırarak kuyruk nesnesi tanıtıcısını ve istek nesnesi tanıtıcısını geçirir.
Sürücü Tarafından Oluşturulan İstek Nesneleri
Çerçeve tabanlı sürücüler de istek nesneleri oluşturabilir. Örneğin, bir sürücü, sürücünün G/Ç hedeflerinden daha büyük bir veri miktarı için bir okuma veya yazma isteği alırsa istek nesneleri oluşturabilir aynı anda işleyebilir. Böyle bir durumda, sürücü verileri birkaç küçük isteğe bölebilir ve bu küçük istekleri bir veya daha fazla G/Ç hedefine göndermek için ek istek nesneleri kullanabilir.
İstek nesnesi oluşturmak için sürücünüz WdfRequestCreate ve ardından WdfUsbTargetPipeFormatRequestForReadgibi isteği başlatan çerçeve nesnesi yöntemlerini çağırmalıdır.
Bir sürücü WDM dağıtım yordamında WDM IRP'lerini alırsa ve ardından çerçeveyi kullanarak bu IRP'leri hizmet verir veya iletirse, sürücü WdfRequestCreateFromIrpçağırabilir.