Aracılığıyla paylaş


HID mimarisi

Windows'taki HID sürücü yığınının mimarisi,hidclass.sysadlı sınıf sürücüsü üzerine kurulmuştur . İstemciler ve aktarım minidriver'ları kullanıcı modundan veya çekirdek modundan sınıf sürücüsüne erişer.

HID sınıf sürücüsü

Sistem tarafından sağlanan HID sınıf sürücüsü, HID cihaz kurulum sınıfı (HIDClass) için WDM işlev sürücüsü ve veri yolu sürücüsüdür. HID sınıf sürücüsünün yürütülebilir bileşeni hidclass.sys. HID sınıf sürücüsü HID istemcileri ile çeşitli aktarımlar arasındaki tutkaldır ve bir HID istemcisinin aktarımlardan bağımsız bir şekilde yazılması sağlanır. Bu soyutlama düzeyi, istemcilerin yeni bir standart veya üçüncü taraf aktarım söz konusu olduğunda çalışmaya (çok az veya hiç değişiklik olmadan) devam etmesine olanak tanır.

Aşağıdaki diyagram HID mimarisinin bir gösterimidir.

HID istemcilerini, HID sınıf sürücüsünü ve HID aktarım bileşenlerini gösteren basitleştirilmiş bir HID sürücü yığını diyagramı.

Yukarıdaki diyagram şunları içerir:

  • HID istemcileri – Windows ve üçüncü taraf istemcilerini ve arabirimlerini tanımlar.
  • HID sınıf sürücüsü - hidclass.sys yürütülebilir dosyası.
  • HID aktarım mini sürücüsü - Windows ve üçüncü taraf aktarımlarını ve bunların arabirimlerini tanımlar.

Genel HID istemcisi ve veri aktarımının cihaz yığını, aşağıdaki diyagramda gösterilmiştir.

Genel hid istemcisi ve aktarım için HID cihaz yığını diyagramı.

AŞAĞıDA, USB üzerinden HID klavye ve fare koleksiyonlarını gösteren başka bir cihaz yığını diyagramı yer alır.

USB üzerinde klavye ve fare için HID cihaz yığını diyagramı.

HID istemcileri

HID İstemcileri, HIDClass.sys ile iletişim kuran ve genellikle belirli bir cihaz türünü (algılayıcı, klavye, fare vb.) temsil eden sürücüler, hizmetler veya uygulamalardır. Cihazı bir donanım kimliği veya belirli bir HID Koleksiyonu aracılığıyla tanımlar ve aşağıdaki kılavuz aracılığıyla HID Koleksiyonu ile iletişim kurar.

Kullanıcı modu sürücüleri ve uygulamaları ile çekirdek modu sürücüleri, HID koleksiyonlarını çalıştırmak için aşağıdakileri yapın:

  • Kullanıcı modu sürücüleri ve uygulamaları, HID koleksiyonu hakkında bilgi edinmek için HIDClass destek yordamlarını (HidD_Xxx) kullanır.
  • Çekirdek modu sürücüleri, kullanıcı modu sürücüleri ve uygulamalar, HID ayrıştırma destek yordamlarını (HidP_Xxx) kullanır ve çekirdek modu sürücüleri, HID raporlarını işlemek için HID sınıf sürücüsü Giriş/Çıkış Denetim Listesi (IOCTL) çağrılarını kullanır.

Aşağıdaki tablo bilgileri basitleştirir.

Modül Sürücüler Uygulamalar
Kullanıcı Modu HidD_Xxx HidP_Xxx
Çekirdek Modu HidD_Xxx VEYA IOCTL_HID_xxx Mevcut Değil

Daha fazla bilgi için bkz . HID koleksiyonlarını açma.

Windows'ta desteklenen HID istemcileri

Windows aşağıdaki üst düzey koleksiyonları destekler:

Kullanım sayfası Kullanım Notes Erişim modu
0x0001 0x0001 - 0x0002 Fare sınıf sürücüsü ve haritalayıcı sürücüsü Seçkin
0x0001 0x0004 - 0x0005 Oyun kumandaları Paylaşılan
0x0001 0x0006 - 0x0007 Klavye / Tuş Takımı sınıf sürücüsü ve haritalayıcı sürücüsü Seçkin
0x0001 0x000C Uçuş modu anahtarı Paylaşılan
0x0001 0x0080 Sistem denetimleri (Güç) Paylaşılan
0x000C 0x0001 Tüketici denetimleri Paylaşılan
0x000D 0x0001 Dış kalem cihazı Seçkin
0x000D 0x0002 Tümleşik kalem cihazı Seçkin
0x000D 0x0004 Dokunmatik ekran Seçkin
0x000D 0x0005 Hassas dokunmatik yüzey (PTP) Seçkin
0x0020 *Çoklu Sensör Paylaşılan
0x0084 0x0004 HID UPS pili Paylaşılan
0x008C 0x0002 Barkod tarayıcı (hidscanner.dll) Paylaşılan

Önceki tabloda, giriş HID istemcileri için erişim modu, diğer HID istemcilerinin bu girişin hedef alıcısı olmadığı durumlarda, küresel giriş durumunu kesmesini veya almasını engellemek için özel olarak ayarlanmıştır. Güvenlik nedeniyle Raw Input Manager (RIM) bu tür tüm cihazları özel olarak açar.

RIM bir cihazı özel kullanım modunda açarsa, kullanıcı okuma ve yazma izinleri istemeden hid cihaz arabirimini açmaya ve HIDClass destek yordamları (HidD_GetXxx) aracılığıyla HID cihaz bilgilerini almaya devam edebilir.

Paylaşım modu, birden çok uygulamanın bir cihaza erişmesine olanak tanır. Örneğin, birden çok uygulama cihaz özelliklerini sorgulamak ve istatistikleri almak için barkod tarayıcıya erişebilir. Ancak kod çözme verilerini barkod tarayıcıdan almak özel kullanım modunda gerçekleştirilir. Kullanımlar USB-IF Kullanım Tablolarında tanımlanır.

*Çoklu: 0x00 algılayıcı kullanımları – 0xFF farklı amaçlar için segmentlere ayrılmıştır. Örneğin, 0x10 biyometrik algılayıcıyı gösterir; 0x40 bir ışık algılayıcısı olduğunu gösterir. Bu ayırmalar bitişik değil. Algılayıcı kullanımlarının listesi için bkz. HID için Cihaz Sınıfı TanımlarıUSB-IF. Windows'ta desteklenen algılayıcı kullanımları hakkında bilgi için bkz. HID Algılayıcı kullanımları.

HID aktarım sürücüsü

HID sınıf sürücüsü, donanım giriş cihazına erişmek için HID minidriver'ları kullanacak şekilde tasarlanmıştır. HID minidriver, desteklediği giriş cihazlarının cihaza özgü işlemini soyutlar. HID minidriver, HID sınıf sürücüsüne kaydolarak işlemini HID sınıf sürücüsüne bağlar. HID sınıf sürücüsü, minidriver'ın destek yordamlarını çağırarak bir HID minidriver ile iletişim kurar. HID mini sürücü, sırasıyla sürücü yığınındaki iletişimleri alttaki bir veri yolu veya bağlantı noktası sürücüsüne gönderir.

Windows'ta Desteklenen HID Aktarımları

Desteklenen HID aktarımlarının listesi için bkz. HID Aktarıma Genel Bakış.

Windows Donanım Laboratuvar Seti'ndeki (HLK) USB Genel HID Testi HidUsb ve HidClass sürücülerini kapsar. Üçüncü taraf HID minidriver'lar için HLK testi yoktur.