Belli sayıda harici aygıtım var, onlara Onları Arayalım. Her Thing, bir PCI yuvasına takılı bir PnP Kartı ile bilgisayarla iletişim kurar. Her Kartta 4 Şey için bağlantı noktaları vardır. Her Thing için bir UID elde etmem gerekiyor ki, devam eden ve yeniden başlayanlar arasında tutarlı. Notların, erişebildiğim bir UID'de yerleşik olmadığını unutmayın.F N Play Aygıtlarını PCI Yuvası Kimlikleriyle Eşleme, C#
Bu sorunu çözme fikrim, Kartlardaki her bağlantı noktası için bir UID elde etmektir. Bana öyle geliyor ki, her bir kartın hangi PCI yuvasına takıldığını bulmam gerekiyor. Bu, yeniden başlatma sırasında değişmeyecek ve kesinlikle bağlantı noktaları aynı sırada olacak ... böylece her bir portu UID ile etiketleyebilir ve her Thing'in ilişkili olduğu UID'yi bilirim.
C# nesnelerinin en çok hangi amaçla kullanılacağını anlamak için biraz arama yaptım. Bulduğum en yakın System.Management
kitaplığından ManagementObjectSearcher
nesnesidir.
static void Main(string[] args)
{
IDsearch();
Console.ReadLine();
}
static void IDsearch()
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
Console.WriteLine("Description: {0}", queryObj["Description"]);
}
}
Bu benim bilgisayardaki her PnP aygıtlar için aşağıdaki gibi çıktı üretir: İşte bu beni alacağı eğer istediklerini görmek yazdığı bazı basit kod
DeviceID: ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_60_-_INTEL(R)_CORE(TM)[email protected]_3.60GHZ\_1
Description: Intel Processor
DeviceID: USB\VID_0CF3&PID_3004\ALASKA_DAY_2006
Description: Dell Wireless 1535C Bluetooth Device
Bu uyabilecek benim PCI yuvası numarasını da alabilirsem gereklilikler.
Ayrıca, Win32_SystemSlot
sınıfında da rastladım, ancak bu bana aslında yuvaya takılan şeyin açıklamasını vermiyor gibi görünüyor! Bu noktada, PCI yuvaları olmadan açıklamaları ve açıklamaları olmayan PCI yuvaları alabilirim. Onları birlikte eşleyemiyorum, ihtiyacım olan şey bu. Bir şeye bakmalı ya da doğru soruyu sormamalıyım, çünkü bu beni oldukça yaygın bir şey olarak gösteriyor.
Yardımlarınız için teşekkür ederiz.
Merhaba Keith, sorunun cevabını bilmiyorum ama bana cihazın kimliğini almanın bir yolunu bulmanız gerektiğini düşünüyorum. liman. İşler onları tanımlayacak bir şeye sahip olmalı ... şuna bak ... https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/identifiers-for-pci-devices – GreatJobBob
@GreatJobBob . Şeylerin aslında bir açıklaması var. Onlar farklı şeyler arasında benzersiz değiller. Ben aynı anda bağlı olan birden çok şeyi tanıtmak ve farklılaştırmak için çalışıyorum. Başka bir deyişle, bir kimliğim olmasına rağmen, bir UID almak için kart ve bağlantı noktasıyla eşleşmem gerekiyor. –
Öğelerinizin bağlandığı Kart bir UID'ye sahip olmalıdır, böylece kartınızın hangi PCI yuvasına takılı olduğunu öğrenmek için Card UID'yi tarayamaz mısınız? –