2015-06-24 28 views
5

Bir Windows sistemine bağlı olan farklı USB aygıtlarını izleyen ve kaydeden bir C# uygulaması yazıyorum. Pencerenin kurulum API'sini kullanarak, VID, PID, Donanım Kimliği ve Arkadaşlık adı gibi ayrıntıları alabiliyorum. Sormak istediğim, bağlı aygıtın bir SmartPhone veya bir Yazıcı veya bir Yığın Depolama aygıtı mı yoksa bir Modem mi olduğunu kontrol etmenin bir yolu var mı?Bağlı USB aygıtlarının sınıflandırması

Not: SetupGerDeviceRegistryProperty() kullanarak, Aygıt Açıklaması'nı elde edebiliyorum ancak tüm aygıtlarda Aygıt Tanımı'nın USB Kompozit Aygıt olduğunu gösteriyor.

+0

Belki "Cihaz Kategorileri"? –

+0

detaylandırır mısınız? – sidd607

+0

Aygıt Yöneticisi'nde, özelliklerden biri "Aygıt Kategorileri" dır. İstediğiniz bilgileri içerebilir - en azından cep telefonumu bir telefon olarak listeler. Bunun, API açısından ne anlama geldiğinden emin değilim, ancak öğrenmesi çok zor olmamalı - ancak bu bilgilerin gerçekten sizin için yararlı olup olmadığını görmek için önce Aygıt Yöneticisi'ni ziyaret edin. –

cevap

1

Aygıt düğümü için yüklenen sürücünün adını almak için SPDRP_SERVICE bağımsız değişkeni ile SetupDiGetDeviceRegistryProperty değişkenini kullanabilirsiniz. Sürücünün adı genellikle Windows'un bir parçası olan standart bir sürücü kullanıyorsa, hangi aygıtın bağlı olduğunu gösterir. Bu standart sürücüleri seçmek için kullanılan ID'ler olan SPDRP_COMPATIBLEIDS numaralı telefonu da kullanabilirsiniz. Aslında SPDRP_CLASS ve SPDRP_CLASSGUID en iyileri olabilir; Bunlardan birinin, cihazın Aygıt Yöneticisi'nde görüntülendiği kategoriye karşılık geldiğini düşünüyorum.

Cihazlarınız kompozit cihazlar gibi görünüyor, bu yüzden kompozit cihazın yerine kompozit cihazın çocuklarına erişmeniz gerekecek. Bunu yapmanın bir yolu, tüm USB aygıtlarına ve tüm çocuklarına sahip bir aygıt bilgisi kümesi döndürecek olan SetupDiGetClassDevs(NULL, "USB", NULL, 0)'u aramaktır.

+0

Cevabımı kabul ettiğiniz için teşekkür ederiz. Gelecek okuyuculara yardımcı olmak için hangi kayıt özelliklerini kullandığınızı söyleyebilir misiniz? Cevabım dört farklı kişiden bahsetti. –

İlgili konular