I'm about to research methods of root cause identification for software failures on computers running Windows XP, Vista and Windows 7. The plan is to keep things simple and portable and probably the best way of going about it is to use the existing tools provided by the OS manufacturer. In the course of looking for an ideal data collection tool I stumbled upon MSInfo32.exe, which allows you to silently export an XML file (an .NFO extension) with a comprehensive view of your hardware, system components, and software environment. Find out here how to export the NFO file with system information. The documentation of the application is scarce, but I could find this description of the MSInfo document. The italic font further in this text will mean a quote from it.. I will try to save you the hassle of analyzing the XML elements on your own, please find the outcome of my research below. It is a stripped XML MSInfo template also available here for download.
[work in progress]
The XML tree is divided into Categories, each of which contains one or multiple Data elements. The structure of the Data element varies from one category to another (the Data element is not always the same). In the stripped example above, if a Category contains multiple Data elements, a tripple dot ("...") will follow after the Data element definition specific to the Category.
Data Element types
- Basic Data element
The Basic Data Element is used where it would be enough to represent a data unit with VARIABLE=VALUE format. Item is the variable name, Value represents the value of a given variable.
Data {
Item = String
Value = String
} - "Conflicts/Sharing" Data element
Lists the identified resource conflicts between Industry Standard Architecture (ISA) devices, and identifies resources that are shared by Peripheral Component Interconnect (PCI) devices. Use this information to help identify hardware conflicts.
Data {
Resource = I/O port address of the resource
Device = Name of the resource
} - "DMA", "I/O", "IRQs", "Memory" Data element
DMA Reports the direct memory access (DMA) channels that are in use, the devices that are using them, and those that are available for use.
I/O Lists all I/O port ranges that are in use, and the devices that are using each range.
IRQs Summarizes IRQ usage, identifies the devices that are using the IRQs, and lists the available IRQs.
Memory Lists memory address ranges that are in use by devices.
Data {
Resource = DMA channel
Device = "Direct Memory Access controller"
Status = Status { OK, Disabled }
} - "Forced Hardware" Data Element
Lists hardware devices in which the Plug and Play (PNP) configuration has been disabled ,and resource settings have been manually set to user-specified resources. Forced hardware would also apply to devices that do not participate in the PNP process such as legacy ISA devices. This information is useful when you want to troubleshoot Plug and Play resource conflicts.
Data {
Device = Device Name
PNP_Device_ID = Plug'N'Play Device ID
} - "Audio Codecs" and "Video Codecs" Data Element
Lists the audio or video codecs that are loaded.
Data {
CODEC = Name of the codec (in form of a pathname)
Manufacturer = Codec manufacturer
Description = Codec description
Status = Status in the system
File = Path to the codec
Version = Codec version
Size = Codec size
Creation_date = Codec creation date
} - "Printing" Data Element
Lists installed printers, and printer drivers.
Data {
Name = Printer name
Driver = Description of the Printers driver
Port_Name = Printer Port
Server_Name = Optional server name
} - "Problem Devices" Data Element
Lists devices with problems. Lists each device that is flagged in Device Manager, and displays the corresponding status information.
Data {
Device = Device Name
PNP_Device_ID = Plug'N'Play device ID
Error_Code = Error code or device status.
} - "USB" Data Element
Lists Universal Serial Bus (USB) controllers, and drivers that are installed.
Data {
Device = Device Name
PNP_Device_ID = P'N'P Device ID
} - "System Drivers" Data Element
Data {
Name = Driver Name
Description = Description string
File = File path
Type =
Started =
State =
Status =
Error_Control =
Accept_Pause =
Accept_Stop =
} - "Signed Drivers" Data Element
Data{
Device_Name =
Signed =
Device_Class =
Driver_Version =
Driver_Date =
Manufacturer =
INF_Name =
Driver_Name =
Device_ID =
} - "Environment Variables" Data Element
Lists the Windows XP global environment variables. The Global Environment Variables formerly in the Autoexec.bat, and Config.sys files are migrated to the registry, and are shown here.
Data {
Variable = Name of the Variable
Value = Value of the Variable
User_Name = User that has this variable in their profile.
} - "Print Jobs" Data Element
Shows the printing jobs currently in the print queue.
Data {
Document =
Size =
Owner =
Notify =
Status =
Time_Submitted =
Start_Time =
Until_Time =
Elapsed_Time =
Pages_Printed =
Job_ID =
Priority =
Parameters =
Driver =
Print_Processor =
Host_Print_Queue =
Data_Type =
Name =
} - "Network Connections" Data Element
Lists all current network connections.
Data {
Local_Name =
Remote_Name =
Type =
Status =
User_Name =
} - "Running Tasks" Data Element
Lists the currently running executable files or programs. This provides a comprehensive view of the processes that are running on your computer.
Data {
Name =
Path=
Process_ID=
Priority=
Min_Working_Set=
Max_Working_Set=
Start_Time=
Version=
} - "Loaded Modules" Data Element
Lists all modules currently loaded into memory.
Data {
Name=
Version=
Size=
File_Date=
Manufacturer=
Path=
}
1 comments:
Hi
Your idea on "root cause identification for software failures" is very interesting.
I have been headed down a parallel path after several recent computer failures based on identifying configuration changes & status (temperature, SMART, CMOS...) and am also looking at msinfo32 as well as tools for the status changes.
Questions:
- have you looked at the msinfo32 system history - see the view menu?
- have you made any further progress on root cause analysis?
- do you wish to correspond/discuss further?
Post a Comment