Aracılığıyla paylaş


Cihaz Bilgi Kümeleri

Kullanıcı modunda, cihaz kurulum sınıflarına veya cihaz arabirimi sınıflarına ait cihazlar , cihaz bilgileri öğeleri ve cihaz bilgi kümeleri kullanılarak yönetilir. Cihaz bilgileri kümesi, bazı cihaz kurulum sınıfına veya cihaz arabirimi sınıfına ait tüm cihazlar için cihaz bilgileri öğelerinden oluşur.

Her cihaz bilgisi öğesi, cihazın devnode'unun bir tutamacını ve bu öğe tarafından açıklanan cihazla ilişkili tüm cihaz arabirimlerinin bağlantılı listesini gösteren bir işaretçi içerir. Cihaz bilgi kümesi bir kurulum sınıfının üyelerini açıklıyorsa, kurulum sınıfı üyelerinin bir arabirimle ilişkili olması gerekmediğinden, öğesi herhangi bir cihaz arabirimine işaret etmeyebilir.

Aşağıdaki diyagramda bir cihaz bilgi kümesinin iç yapısı gösterilmektedir.

bir cihaz bilgi kümesini gösteren diyagram.

Cihaz Bilgi Kümesi Oluşturma

SetupDiCreateDeviceInfoList ile bir cihaz bilgileri kümesi oluşturulduktan sonra, cihaz bilgileri öğeleri setupDiCreateDeviceInfo kullanılarak tek tek oluşturulabilir ve listeye eklenebilir. Alternatif olarak, SetupDiGetClassDevs , belirtilen bir cihaz kurulum sınıfı veya cihaz arabirimi sınıfıyla ilişkili tüm cihazlardan oluşan bir cihaz bilgi kümesi oluşturmak için çağrılabilir.

Cihaz Bilgilerini Numaralandırma

Bir cihaz bilgi kümesi oluşturulduktan sonra, hem cihazlar hem de kümeye ait cihaz arabirimleri numaralandırılabilir, ancak her numaralandırma türü için farklı işlemler gerekir. SetupDiEnumDeviceInfo , belirli ölçütleri karşılayan bilgi kümesine ait tüm cihazları numaralandırır. SetupDiEnumDeviceInfo çağrısı, kabaca bir cihaz bilgi öğesine karşılık gelen bir SP_DEVINFO_DATA yapısı ayıklar. SP_DEVINFO_DATA, cihazın ait olduğu sınıfın GUID'sini ve cihaz için devnode'a işaret eden bir cihaz örneği tanıtıcısını içerir. SP_DEVINFO_DATA yapısı ile tam cihaz öğesi arasındaki temel fark, SP_DEVINFO_DATA cihazla ilişkili arabirimlerin bağlı listesini içermemesidir . Bu nedenle, cihaz bilgi kümesindeki arabirimleri numaralandırmak için SetupDiEnumDeviceInfo kullanılamaz.

Cihaz bilgi kümesindeki cihaz arabirimlerini listelemek için SetupDiEnumDeviceInterfaces'i çağırın. Bu yordam, cihaz bilgileri kümesindeki tüm cihaz bilgileri öğelerinde adım adım ilerler, her öğenin arabirim listesindeki arabirimleri ayıklar ve her çağrıyla bir arabirim döndürür. SetupDiEnumDeviceInterfaces ikinci parametresinde giriş olarak bir SP_DEVINFO_DATA yapısı geçirilirse, numaralandırmayı yalnızca SP_DEVINFO_DATA tarafından belirtilen cihazla ilişkilendirilmiş arabirimlerle kısıtlar.

SetupDiEnumDeviceInterfacesbir SP_DEVICE_INTERFACE_DATA yapısı döndürür. SP_DEVICE_INTERFACE_DATA arabirim sınıfı GUID'sini ve arabirimin adını almak için kullanılabilecek kodlanmış bilgilere sahip ayrılmış bir alan da dahil olmak üzere arabirim hakkında diğer bilgileri içerir. Arabirim adını almak için bir adım daha gerekir: SetupDiGetDeviceInterfaceDetail çağrılmalıdır. SetupDiGetDeviceInterfaceDetail , arabirimi tanımlayan sistem nesne ağacındaki yolu içeren SP_DEVICE_INTERFACE_DETAIL_DATA türünde bir yapı döndürür.