2012-07-16 22 views

Odpowiedz

3

Ludzie zwykle robią tego rodzaju rzeczy za pośrednictwem WMI, , ale nie udostępniają użytecznych informacji wiele razy, nawet dostarczając "złe" informacje, ponieważ czasami opiera się na informacji dostarczonej przez producenta z BIOS-u (poprzez SMBIOS), które często jest puste lub błędne, zamiast komunikować się z konkretną częścią sprzętową.

Przeszedłem przez to doświadczenie wcześniej, aby uzyskać informacje o pamięci RAM. WMI dostarczył złe informacje o BIOS-ie i odkryłem, że chipy RAM są wyposażone w specjalny układ SPD (Serial Presence Detect), z którym potrzebowałem się komunikować. W końcu mój pracodawca zdecydował się na CPUID API.

Tutaj autor CPU-Z opowiada trochę na ten temat w wywiadzie:

http://www.techpowerup.com/mobile/reviews/Interviews/Franck_Delattre/1.html.

Aby uzyskać takie informacje, należy poszukać sposobu komunikacji z przestrzenią konfiguracji PCI w trybie jądra za pośrednictwem sterownika lub skorzystać z alternatywnego interfejsu API, który wykonałby to za Ciebie.

Oto kilka linków, jakie przeszły w tym czasie:

http://www.codeproject.com/Articles/35378/Access-Physical-Memory-Port-and-PCI-Configuration

http://support.microsoft.com/?scid=kb;en-us;253232&x=3&y=13

http://www.hollistech.com/Resources/Misc%20articles/getbusdata.htm

http://www.osronline.com/showThread.CFM?link=176210#T4

Także myślę, że warto wspomnieć o SetupDi działa w systemie Windows, które czasami są abl e, aby dostarczyć informacji, których WMI nie może.

+0

Dzięki Chico. Przeszedłem przez SetupDi Api. Choć wydają się lepsze niż WMI, przez większość czasu są nadal niewiarygodne. To zaskakujące, jak trudno jest znaleźć przyzwoity przykład tego rodzaju rzeczy. Jeśli znajdę niezawodny sposób, opublikuję go na github :) – ivymike

+0

@ivymike ok, nie miałem szczęścia z informacją RAM, NIE BYŁO NIEZAWODNEGO ŹRÓDŁA do wyciągania informacji z chipów SPD. Udało mi się zbudować prosty sterownik umożliwiający SMBUS dla określonego mostka południowego Intel (ICH) zbudowanego na mojej starej płycie głównej. Włącz SMBUS jest pierwszym krokiem do wyodrębnienia informacji z tego układu, znalazłem wskazówki na temat pakietu lm-sensors dla linuxa, który ma moduł do komunikacji SMBUS i skrypt perlowy do interpretowania danych SPD. W każdym razie, zrobiłem to tak jak dowód koncepcji, działało na podstawie arkusza danych mojej konkretnej wersji ICH, która miała ... –

+0

@ivymike ... konkretne adresy miejsca konfiguracji PCI. Specyfikacja sprzętu zmienia się nawet z wersji na wersję dla tego samego dostawcy. Potrzebowałbym wsparcia dla listy dostawców. To właśnie robi CPUID API, a także, co robi pakiet lm-sensors. Jedynym wiarygodnym źródłem byłby ten rodzaj masywnego sprzętu wspierającego przedsięwzięcie. –