// extsfns.h
typedef enum _FA_ENTRY_TYPE {
DEBUG_FA_ENTRY_NO_TYPE,
DEBUG_FA_ENTRY_ULONG,
DEBUG_FA_ENTRY_ULONG64,
DEBUG_FA_ENTRY_INSTRUCTION_OFFSET,
DEBUG_FA_ENTRY_POINTER,
DEBUG_FA_ENTRY_ANSI_STRING,
DEBUG_FA_ENTRY_ANSI_STRINGs,
DEBUG_FA_ENTRY_EXTENSION_CMD,
DEBUG_FA_ENTRY_STRUCTURED_DATA,
DEBUG_FA_ENTRY_UNICODE_STRING,
DEBUG_FA_ENTRY_ARRAY
} FA_ENTRY_TYPE;
View the official Windows Driver Kit DDI referenceNo description available.
A DebugFailureAnalysis object has a collection of failure analysis entries (FA entries). Each FA entry has a tag, and each tag is associated with one of the data types in the FA_ENTRY_TYPE enumeration. For more information, see Failure Analysis Entries, Tags, and Data Types.
An FA entry is an FA_ENTRY structure along with an optional data block. The data type of the tag indicates the type of data in the data block.
DEBUG_FA_ENTRY_NO_TYPEThere is no data type associated with the tag, and there is no data block.
DEBUG_FA_ENTRY_ULONGThe data block holds a ULONG value.
DEBUG_FA_ENTRY_ULONG64The data block holds a ULONG64 value.
DEBUG_FA_ENTRY_INSTRUCTION_OFFSETThe data block holds a 64-bit instruction offset.
DEBUG_FA_ENTRY_POINTERThe data block holds a 64-bit pointer.
DEBUG_FA_ENTRY_ANSI_STRINGThe data block holds a null-terminated string. The DataSize member of the FA_ENTRY structure holds the size of the string including the null terminator.
DEBUG_FA_ENTRY_ANSI_STRINGsDEBUG_FA_ENTRY_EXTENSION_CMDThe data block holds a null-terminated string that is a debugger command. An example of a debugger command string is "!analyze -v".
DEBUG_FA_ENTRY_STRUCTURED_DATAThe data block holds a pointer to an IDebugFailureAnalysis2 interface.
DEBUG_FA_ENTRY_UNICODE_STRINGThe data block holds a null-terminated Unicode string. The DataSize member of the FA_ENTRY structure holds the size of the Unicode string including the null terminator.
DEBUG_FA_ENTRY_ARRAYA bitwise OR of this value and one of the basic types indicates an array. For example, if the data type is DEBUG_FA_ENTRY_ARRAY or DEBUG_FA_ENTRY_POINTER, the data block holds an array of pointers.
Writing an Analysis Extension Plug-in to Extend !analyze