Aracılığıyla paylaş


Sürücü yığınları

Cihaz sürücülerine gönderilen isteklerin çoğu G/Ç istek paketleri (IRP'ler) içinde paketlenir. Her cihaz bir cihaz düğümüyle temsil edilir ve her cihaz düğümünde bir cihaz yığını vardır. Daha fazla bilgi için bkz. Cihaz düğümleri ve cihaz yığınları. Bir cihaza okuma, yazma veya denetim isteği göndermek için G/Ç yöneticisi cihazın cihaz düğümünü bulur ve ardından bu düğümün cihaz yığınına bir IRP gönderir. Bazen bir G/Ç isteğinin işlenmesinde birden fazla cihaz yığını yer alır. Kaç cihaz yığınının dahil olduğuna bakılmaksızın, G/Ç isteğine katılan sürücülerin genel dizisi, istek için sürücü yığını olarak adlandırılır. Ayrıca belirli bir teknolojinin katmanlı sürücü kümesine başvurmak için sürücü yığını terimini kullanırız.

Birkaç cihaz yığını tarafından işlenen G/Ç istekleri

Bazı durumlarda, bir IRP'nin işlenmesinde birden fazla cihaz yığını yer alır. Aşağıdaki diyagramda, tek bir IRP'yi işlemek için dört cihaz yığınının yer aldığı bir durum gösterilmektedir.

her biri bir cihaz yığınına sahip dört cihaz düğümünün diyagramı.

IRP'nin diyagramdaki her numaralandırılmış aşamada nasıl işlendiği aşağıda açıklandı:

  1. IRP, USB Depolama Cihazım düğümü için cihaz yığınındaki işlev sürücüsü olan Disk.systarafından oluşturulur. Disk.sys, IRP'yi cihaz yığında aşağı doğru Usbstor.sys'e iletir.

  2. Usbstor.sys'nin USB Depolama Cihazım düğümü için PDO sürücüsü ve USB Yığın Depolama Cihazı düğümü için FDO sürücüsü olduğuna dikkat edin. Bu noktada, IRP'nin (PDO, Usbstor.sys) çiftine mi yoksa (FDO, Usbstor.sys) çiftine mi ait olduğuna karar vermek önemli değildir. IRP, Usbstor.syssürücüsüne aittir ve sürücünün hem PDO hem de FDO'ya erişimi vardır.

  3. Usbstor.sys IRP'yi işlemeyi bitirdiğinde, IRP'yi Usbhub.sysgeçirir. Usbhub.sys, USB Yığın Depolama Cihazı düğümü için PDO sürücüsü ve USB Kök Merkez düğümü için FDO sürücüsüdür. IRP'nin (PDO, Usbhub.sys) çiftine mi yoksa (FDO, Usbhub.sys) çiftine mi ait olduğuna karar vermek önemli değildir. IRP, Usbhub.syssürücüsüne aittir ve sürücünün hem PDO hem de FDO'ya erişimi vardır.

  4. Usbhub.sys IRP'yi işlemeyi bitirdiğinde, IRP'yi (Usbuhci.sys, Usbport.sys) çiftine geçirir.

    Usbuhci.sys bir miniport sürücüsüdür ve Usbport.sys bir bağlantı noktası sürücüsüdür. (miniport, bağlantı noktası) çifti tek bir sürücü rolünü oynar. Bu durumda, hem miniport sürücüsü hem de bağlantı noktası sürücüsü Microsoft tarafından yazılır. (Usbuhci.sys, Usbport.sys) çifti USB Kök Hub düğümü için PDO sürücüsüdür ve (Usbuhci.sys, Usbport.sys) çifti de USB Ana Bilgisayar Denetleyicisi düğümü için FDO sürücüsüdür. (Usbuhci.sys, Usbport.sys) çifti, konak denetleyicisi donanımıyla gerçek iletişimi gerçekleştirir ve bu da fiziksel USB depolama cihazıyla iletişim kurar.

G/Ç isteği için sürücü yığını

Önceki diyagramda gösterilen G/Ç isteğine katılan dört sürücünün sırasını göz önünde bulundurun. Cihaz düğümleri ve bunların tek tek cihaz yığınları yerine sürücülere odaklanarak sıranın başka bir görünümünü elde edebiliriz. Aşağıdaki diyagramda sürücüler yukarıdan aşağıya sıralı olarak gösterilir. Disk.sys bir cihaz nesnesiyle ilişkilendirildiğini, ancak diğer üç sürücünün her birinin iki cihaz nesnesiyle ilişkili olduğuna dikkat edin.

Yalnızca bir fdo ile ilişkili en üstteki sürücüyü ve pdo ve fdo ile ilişkili diğer üç sürücüyü gösteren bir sürücü yığınının diyagramı.

G/Ç isteğine katılan sürücülerin dizisi, G/Ç isteği içinsürücü yığını olarak adlandırılır. G/Ç isteğinin sürücü yığınını göstermek için sürücüleri istekte yer aldıkları sıraya göre üstten alta doğru gösteririz.

G/Ç isteğinin sürücü yığınının bir cihaz düğümü için cihaz yığınından oldukça farklı olduğuna dikkat edin. Ayrıca G/Ç isteğinin sürücü yığınının cihaz ağacının bir dalında kalması gerekmediğine de dikkat edin.

Teknoloji sürücüsü yığınları

Önceki diyagramda gösterilen G/Ç isteğinin sürücü yığınını göz önünde bulundurun. Sürücülerin her birine kolay bir ad verirsek ve diyagramda bazı küçük değişiklikler yaparsak, Windows Sürücü Seti (WDK) belgelerinde görünenlerin çoğuna benzer bir blok diyagramımız olur.

Sürücülerin anlaşılır adlarını gösteren bir sürücü yığını diyagramı : Üstte disk sınıfı sürücüsü, ardından USB depolama port sürücüsü, daha sonra USB hub sürücüsü ve son olarak (USB 2 miniport, USB port) sürücüsü.

Diyagramda, sürücü yığını üç bölüme ayrılmıştır. Her bölümü belirli bir teknolojiye ya da işletim sisteminin belirli bir bileşenine veya bir bölümüne ait olarak düşünebiliriz. Örneğin, sürücü yığınının üst kısmındaki ilk bölümün Birim Yöneticisi'ne, ikinci bölümün işletim sisteminin depolama bileşenine, üçüncü bölümün ise işletim sisteminin çekirdek USB bölümüne ait olduğunu söyleyebiliriz.

Üçüncü bölümdeki sürücüleri göz önünde bulundurun. Bu sürücüler, Microsoft'un çeşitli USB isteklerini ve USB donanımlarını işlemek için sağladığı daha büyük bir çekirdek USB sürücüsü kümesinin alt kümesidir. Aşağıdaki diyagramda USB çekirdek blok diyagramının tamamının nasıl görünebileceği gösterilmektedir.

olası usb çekirdek bloğu için teknoloji sürücü yığınını gösteren diyagramı.

Belirli bir teknolojiye veya işletim sisteminin belirli bir bileşenine veya bir bölümüne yönelik tüm sürücüleri gösteren bir blok diyagramı, teknoloji sürücü yığınıolarak adlandırılır. Teknoloji sürücüsü yığınlarına genellikle USB Çekirdek Sürücü Yığını, Depolama Yığını, 1394 Sürücü Yığını ve Ses Sürücüsü Yığını gibi adlar verilir.

Not: Bu makaledeki USB çekirdek bloğu diyagramı, USB 1.0 ve 2.0 için teknoloji sürücüsü yığınlarını göstermek için çeşitli olası yollardan birini gösterir. USB 1.0, 2.0 ve 3.0 sürücü yığınlarının resmi diyagramları için bkz. USB Sürücü Yığını Mimarisi.

Cihaz düğümleri ve cihaz yığınları

Mini sürücüler ve sürücü çiftleri

Tüm sürücü geliştiricileri için kavramlar