Aracılığıyla paylaş


Kurulum sınıflarının ve arabirim sınıflarının karşılaştırması

Cihaz kurulum sınıfları ile cihaz arabirimi sınıfları arasındaki ayrımı anlamak, başarılı Windows sürücü geliştirme ve cihaz yönetimi için çok önemlidir. Bu sınıflar benzer görünse de, Windows cihaz ekosisteminde temel olarak farklı amaçlara hizmet eder. kurulum sınıfları, işletim sisteminin cihazları yükleme ve yapılandırma şeklini yönetir. Arabirim sınıfları sürücüler, uygulamalar ve cihazlar arasında çalışma zamanı iletişim ve işlevselliğini etkinleştirir. Bu ayrımı anlamak, cihaz yüklemesi için doğru sınıf türünü seçmenize, uygun cihaz bildirimlerini uygulamanıza ve yaygın geliştirme tuzaklarından kaçınmanıza yardımcı olur.

Bir cihaz genellikle bir kurulum sınıfına aittir ve aynı anda farklı arabirim sınıflarında çeşitli cihaz arabirimlerini kullanıma sunar. Bununla birlikte, iki sınıf türü farklı amaçlara hizmet eder ve birbirinin yerine getirilemez.

Bir cihaz, kurulum sınıfı ve çeşitli arabirim sınıfları arasındaki ilişkiyi gösteren diyagram.

Karşılaştırma

Aşağıdaki tabloda, kurulum sınıfları ile arabirim sınıfları arasındaki temel farklar ve ilişkiler özetlemektedir:

Görünüş Kurulum sınıfları Arabirim sınıfları
Birincil Amaç Benzer yükleme ve yapılandırmaya sahip cihazları gruplandırma Benzer işlevsellik ve iletişim sağlayan cihaz arabirimlerini gruplandırma
Kullanım Cihaz yüklemesi sırasında Windows tarafından kullanılır Sürücüler ve uygulamalar tarafından cihaz etkileşimi için kullanılır
GUID Tanımları Genellikle Devguid.h içinde tanımlanır Cihaza özgü üst bilgi dosyalarında tanımlanır (örneğin, Ntddmou.h, Ntddpar.h)
Gruplandırma Ölçütleri Benzer şekilde yüklenen ve yapılandırılan cihazlar Genel olarak, belirli bir GÇ sözleşmesini uygulayan cihaz arabirimleri
Bildirim Cihaz varış veya kaldırma bildirimleri için kullanılmaz Cihaz arabirimi varış ve kaldırma bildirimlerini kaydetmek için kullanılır
Examples Algılayıcılar, Üretici Yazılımı, Bluetooth Ses Yakalama, Ses İşleme, Ortam Işığı Sensörü
İlişki Cihaz bir kurulum sınıfına ait Bir cihaz, farklı arabirim sınıflarında sıfır veya daha fazla cihaz arabirimini kullanıma açabilir
Ömür Yükleme işlemi sırasında ilgili Cihaz işlemi sırasında ilgili

İki tür cihaz sınıfı arasında ayrım yapmak önemlidir: cihaz arabirimi sınıfları ve cihaz kurulum sınıfları. İkisi kolayca karıştırılabilir. Kullanıcı modu kodunda her iki sınıf da aynı cihaz yükleme işlevleri kümesini kullanır. Ayrıca aynı veri yapısı kümesini (cihaz bilgi kümeleri) kullanırlar.

Aynı kurulum sınıfı, farklı arabirim sınıfları:

  • Cihazlar: İki farklı algılayıcı cihazı
  • Kurulum Sınıfı: Her iki cihaz da Algılayıcılar sınıfındadır.
  • Arabirim Sınıfları: Algılayıcılardan biri ortam ışığı algılayıcısı cihaz arabirimini, diğeri ise ivmeölçer cihaz arabirimini kullanıma sunar.

Bir USB fare cihazı ve bir USB klavye cihazı düşünün. Her ikisi de aynı arabirim sınıfını (İnsan Arabirim Cihazı) kullanır. Ancak bunlar sırasıyla Fare ve Klavye olmak üzere farklı kurulum sınıflarına aittir.

Aynı arabirim sınıfı, farklı kurulum sınıfları:

  • Cihazlar: USB fare ve USB klavye
  • Arabirim Sınıfı: Her iki cihaz da sistemle iletişim kurmak için aynı arabirim sınıfını (İnsan Arabirim Cihazı) kullanır.
  • Kurulum Sınıfları: Fare cihazı Fare kurulum sınıfına, klavye cihazı ise Klavye kurulum sınıfına aittir.

Cihaz kurulum sınıfları

Cihaz kurulum sınıfları , yalnızca Windows'ta cihazların yüklenmesi ve yapılandırılması için kullanılan önceden tanımlanmış kategorilerdir. Bu, işletim sisteminin yükleme işlemi sırasında cihazın nasıl yönetileceğini anlamasına yardımcı olur. Kurulum sınıfları, aynı şekilde yüklenen ve yapılandırılan cihazları gruplandırma mekanizması sağlar. Kurulum sınıfları hakkında daha fazla bilgi için bkz. Satıcıların kullanabileceği sistem tanımlı cihaz kurulum sınıfları.

Windows cihaz kurulum sınıfları Devguid.h sistem dosyasında tanımlanır. Bu dosya, kurulum sınıfları için bir dizi GUID tanımlar. Ancak Devguid.h dosyasında temsil edilen cihaz kurulum sınıfları, cihaz arabirimi sınıfları ile karıştırılmamalıdır. Devguid.h dosyası yalnızca kurulum sınıfları için GUID'ler içerir.

Cihaz arabirimi sınıfları

Cihaz arabirimi sınıfları , cihaz arabirimlerini paylaşılan özelliklere veya işlevlere göre gruplandırmak için bir mekanizma sağlar. Sürücüler ve kullanıcı uygulamaları, belirli bir arabirim sınıfındaki cihaz arabirimleri hakkındaki bildirimlere kaydolabilir. Bu, bu sınıfa ait herhangi bir cihaz arabirimi etkinleştirildiğinde (geldiğinde) veya devre dışı bırakıldığında (kaldırıldığında) bildirim almaları anlamına gelir. Cihazların tek tek izlenmesi gerekmez. Cihaz arabirimi sınıfları, cihazlar tarafından kullanıma sunulan cihaz arabirimlerini gruplandırmadır. Cihaz arabirimlerinin varış ve kaldırma bildirimlerine kaydolabilirsiniz.

Arabirim sınıflarının tanımları tek bir dosyada sağlanmamıştır. Cihaz arabirimi sınıfı her zaman yalnızca belirli bir cihaz sınıfına ait bir üst bilgi dosyasında tanımlanır. Örneğin Ntddmou.h , fare arabirimi sınıfını temsil eden GUID olan GUID_DEVINTERFACE_MOUSE tanımını içerir. Ntddpar.h , paralel cihazlar için arabirim sınıfı GUID'sini tanımlar. Ntddpcm.h , PCMCIA cihazları için standart arabirim sınıfı GUID'sini tanımlar. Ntddstor.h , depolama cihazları için arabirim sınıfı GUID'sini tanımlar.

Cihaz arabirimi bildirimlerine kaydolmak için, cihaz arabirimi sınıfına özgü üst bilgi dosyalarında bulunan GUID'leri kullanın. Bu GUID'ler, bir cihaz arabirimi örneği geldiğinde size bildirim göndermenizi sağlar. Sürücü, arabirim sınıfı GUID'i yerine kurulum sınıfı GUID'sini kullanarak bildirime kaydolduğunda, arabirim geldiğinde bildirim gönderilmez.

Yeni bir arabirim sınıfı tanımlarken, hem kurulum sınıfını hem de arabirim sınıfını tanımlamak için tek bir GUID kullanmayın.