¿Hay alguna forma de encontrar programáticamente el puente norte del chipset del sistema, los nombres del puente sur y otra información de hardware en Windows? No creo que WMI proporcione esta información. Estoy tratando de averiguar cómo herramientas como hwinfo y cpuinfo encuentran esta información.¿Hay alguna manera de encontrar programáticamente North Bridge Bridge, South Bridge Names y otra información de hardware en Windows?
Respuesta
Normalmente, las personas hacen este tipo de cosas a través de WMI, pero que no puede proporcionar información útil en muchas ocasiones, incluso proporcionando información "errónea" porque a veces se basa en proveedor llenado la información de la BIOS (a través de SMBIOS), que a menudo viene vacío o incorrecto, en lugar de comunicarse con la parte específica del hardware.
He pasado por esta experiencia antes de obtener información RAM. WMI proporcionó información incorrecta de la BIOS y descubrí que los chips RAM vienen con un chip especial SPD (Serial Presence Detect) con el que necesitaba comunicarme. Al final, mi empleador optó por la API de CPUID.
Aquí el autor de la CPU-Z habla un poco acerca de este tema en una entrevista:
http://www.techpowerup.com/mobile/reviews/Interviews/Franck_Delattre/1.html.
Para obtener información como esta, debe buscar cómo comunicarse con el Espacio de configuración PCI en modo núcleo a través de un controlador o buscar alguna API alternativa que pueda hacer esto por usted.
Estos son algunos enlaces que he pasado en ese momento:
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
Además, creo que vale la pena mencionar acerca las funciones SetupDi en Windows que a veces son abl e para proporcionar información que WMI no puede.
- 1. Confluence - VIM bridge?
- 2. Ruby to Python bridge
- 3. OrientDB PHP/Gremlin Bridge
- 4. AbstractFactory Versus Bridge Pattern
- 5. Trabajar con Php-Java Bridge
- 6. Scripting Bridge vs PyObjC contra py2app
- 7. Haciendo uso del hardware de bridge verdadero generador de números al azar?
- 8. crear lista de reproducción de iTunes con scripting bridge
- 9. Cargando el código en la GPU (Intel Sandy Bridge)
- 10. Python: ¿cómo implementar el patrón de diseño Bridge (o Adapter)?
- 11. php java bridge no funciona en tomcat 6
- 12. Sandboxing mi aplicación con Scripting Bridge para enviar correo electrónico
- 13. ¿Cuál es la latencia y el rendimiento de la instrucción RDRAND en Ivy Bridge?
- 14. herramienta Android Debug Bridge (ADB) línea de comandos en $ PATH, pero "comando no encontrado" en linux
- 15. ¿Cómo configurar Log4J al implementar una aplicación OSGi con Equinox Servle Bridge para Tomcat?
- 16. ¿Hay alguna manera de acceder al hardware directamente en Python?
- 17. ¿Cómo agrego un backend Java a un sitio PHP existente sin agregar un servidor tomcat para Java Bridge?
- 18. ¿Hay alguna manera de establecer programáticamente el ApartmentState en STA?
- 19. ¿Cómo obtener información de hardware en Windows usando C++?
- 20. ¿Hay alguna manera fácil de obtener programáticamente el alfabeto?
- 21. ¿Hay alguna manera de activar y desactivar wifi programáticamente en iOS?
- 22. ¿Hay alguna manera de encontrar un elemento en un documentFragment?
- 23. Sumando listas en python: ¿hay alguna otra manera mejor?
- 24. ¿Hay alguna manera de procesar SVG en Windows Forms?
- 25. ¿Hay alguna manera de seguir un atajo del sistema de archivos de Windows programáticamente en C# sin usar COM?
- 26. ¿Hay alguna manera de detener el tiempo. ¿Duerme en Windows?
- 27. hardware externo Información
- 28. ¿Hay una manera eficiente de concatenar matrices scipy.sparse?
- 29. Obtener información de hardware en el servidor
- 30. Obtén información de hardware en Android?
Gracias Chico. Pasé por SetupDi Api. Aunque parecen mejores que WMI, todavía no son confiables la mayor parte del tiempo. Es sorprendente lo difícil que es encontrar un ejemplo decente para este tipo de cosas. Si termino encontrando una manera confiable, lo publicaré en github :) – ivymike
@ivymike ok, no tuve suerte con la información RAM, NO HABÍA FUENTE CONFIABLE para extraer información de chips SPD. Pude construir un controlador simple para habilitar SMBUS para un ICH específico (puente sur de Intel) construido en mi vieja placa base de PC. Habilitar SMBUS es el primer paso para extraer información de estos chips, he encontrado una guía sobre el paquete linux lm-sensors que tiene un módulo para comunicación SMBUS y un script perl para interpretar los datos SPD. De todos modos, lo he hecho como una prueba de concepto, funcionó en base a la hoja de datos de mi versión ICH específica, que tenía ... –
@ivymike ... direcciones de espacio de configuración PCI específicas. Las especificaciones de hardware cambian incluso de versión a versión para el mismo proveedor. Tendría que apoyar una lista de proveedores. Esto es lo que hace la API de CPUID, y también lo que hace el paquete lm-sensors. La única fuente confiable haría este tipo de esfuerzo de soporte de hardware masivo. –