Aracılığıyla paylaş


Örnek WDM Cihaz Yığını

Bu bölümde, bir sürücü kümesinin USB donanımı için oluşturabileceği cihaz nesneleri açıklanmaktadır. WDM cihaz nesnelerini ve bunların nasıl katmanlandıklarını gösterir.

Aşağıdaki şekilde örnek sürücülerin oluşturduğu cihaz nesneleri gösterilmektedir. Daha fazla bilgi için bkz. WDM Sürücü Katmanları: Örnek.

Bir USB oyun çubuğu için örnek WDM cihaz nesne katmanlarını gösteren diyagram.

Bu şeklin alt kısmından başlayarak, örnek cihaz yığınlarındaki cihaz nesneleri şunları içerir:

  1. PCI veri yolu için bir PDO ve bir FDO.

    Kök veri yolu sürücüsü iç sistem veri yolunu (kök veri yolu) numaralandırır ve bulduğu her cihaz için bir PDO oluşturur. Bu PPO'lardan biri PCI veri yolu içindir. Şekil, kök veri yolu için PDO ve FDO'yu göstermemektedir.

    PnP yöneticisi PCI sürücüsünü PCI veri yolunun işlev sürücüsü olarak tanımlar, sürücüyü yükler (zaten yüklü değilse) ve PDO'dan PCI sürücüsüne geçirir. AddDevice yordamında, PCI sürücüsü PCI veri yolu (ioCreateDevice) için bir FDO oluşturur ve FDO'yu PCI veri yolu için cihaz yığınına (IoAttachDeviceToDeviceStack) ekler. PCI sürücüsü, PCI veri yolu için işlev sürücüsü olarak sorumluluklarının bir parçası olarak bu FDO'yu oluşturur ve ekler.

    Bu örnek, PCI veri yolu için filtre sürücülerini içermez.

  2. USB ana bilgisayar denetleyicisi için bir PDO ve bir FDO.

    PnP yöneticisi, PCI sürücüsünü cihazını (IRP_MN_START_DEVICE) başlatmaya yönlendirir ve ardından PCI sürücüsünü, alt öğeleri ile ilgili olarak (IRP_MN_QUERY_DEVICE_RELATIONS, ilişki türü BusRelations) sorgular. Yanıt olarak, PCI sürücüsü kendi veri yolu üzerindeki cihazları numaralandırır. Bu örnekte PCI sürücüsü bir USB ana bilgisayar denetleyicisi bulur ve bu cihaz için bir PDO oluşturur. Şekildeki geniş ok, USB ana bilgisayar denetleyicisinin PCI veri yolunun "alt öğesi" olduğunu gösterir. PCI sürücüsü, PCI veri yolu için veri yolu sürücüsü olarak sorumluluklarının bir parçası olarak alt cihazları için PDO'lar oluşturur.

    PnP yöneticisi, USB ana bilgisayar denetleyicisinin işlev sürücüsü olarak USB ana bilgisayar denetleyicisi miniclass/sınıf sürücü çiftini tanımlar ve sürücü çiftini yükler. PnP yöneticisi, USB ana bilgisayar denetleyicisi için bir FDO oluşturmak ve eklemek için uygun zamanda sürücü çiftini çağırır.

    Bu örnek, USB ana bilgisayar denetleyicisi için filtre sürücülerini içermez.

  3. USB hub'ı için bir PDO ve bir FDO.

    USB ana bilgisayar denetleyicisi veri yolunu numaralandırır, USB hub'ını tek bağlantı noktasında bulur ve hub için bir PDO oluşturur. USB hub sürücüsü hub için bir FDO oluşturur ve ekler.

    Bu örnek, USB hub'ına yönelik filtre sürücülerini içermez.

  4. Oyun çubuğu cihazı için bir PDO, bir FDO ve iki filtre DO.

    USB hub sürücüsü veri yolunu numaralandırır, bir HID cihazı (oyun çubuğu) bulur ve oyun çubuğu için bir PDO oluşturur.

    Bu örnekte, oyun çubuğu cihazları için kayıt defterinde alt düzey bir filtre sürücüsü ayarlanır, bu nedenle PnP yöneticisi filtre sürücüsünü yükler. Filtre sürücüsü, cihazla ilgili olduğunu belirler ve cihaz yığınına bir filtre DO oluşturur ve ekler.

    PnP yöneticisi, oyun çubuğu cihazının işlev sürücüsünün HID sınıfı/miniclass sürücü çifti olduğunu belirler ve bu sürücüleri yükler. Sürücü çifti, sınıf sürücüsü DLL'sine bağlı bir mini sınıf sürücüsünden oluşur. Birlikte cihaz için tek bir işlev sürücüsü işlevi görürler. Sınıf/miniclass sürücü çifti bir cihaz nesnesi (FDO) oluşturur ve bunu cihaz yığınına ekler.

    Üst düzey filtre sürücüsü, alt düzey filtreye benzer şekilde bir filtre DO oluşturur ve cihaz yığınına ekler.

Üst veri yolu sürücüsü her zaman belirli bir cihaz için cihaz yığınının alt kısmında PDO oluşturur. Sürücüler PnP veya güç IRP'lerini işlediğinde, her IRP'yi cihaz yığınından PDO'ya ve ilişkili veri yolu sürücüsüne geçirmeleri gerekir.

Aşağıdaki şekilde, önceki şekille aynı cihaz yığınları gösterilmektedir, ancak her sürücünün hangi cihaz nesnelerini oluşturup yönettiği vurgulanmış olur.

Sürücü perspektifinden örnek cihaz nesne katmanlarını gösteren diyagram.

Bir otobüs sürücüsü birden fazla cihaz yığınına yayılır. Veri yolu sürücüsü, veri yolu bağdaştırıcısı veya denetleyicisi için FDO oluşturur ve alt cihazlarının her biri için bir PDO oluşturur.