/*++ Copyright (c) Microsoft Corporation. All rights reserved. _WdfVersionBuild_ Module Name: wdfbugcodes.h Abstract: Lists bugcheck subcode values for the WDF_VIOLATION bugcheck code Environment: kernel mode only Revision History: --*/ // // NOTE: This header is generated by stubwork. Please make any // modifications to the corresponding template files // (.x or .y) and use stubwork to regenerate the header // #ifndef _WDFBUGCODES_H_ #define _WDFBUGCODES_H_ #ifndef WDF_EXTERN_C #ifdef __cplusplus #define WDF_EXTERN_C extern "C" #define WDF_EXTERN_C_START extern "C" { #define WDF_EXTERN_C_END } #else #define WDF_EXTERN_C #define WDF_EXTERN_C_START #define WDF_EXTERN_C_END #endif #endif WDF_EXTERN_C_START #if (NTDDI_VERSION >= NTDDI_WIN2K) // // These values are used in Parameter 1 in the bugcheck data // // NOTE: Do not change these codes, only add to the end. // The OCA analysis and debugger tools will look at // these codes to perform fault analysis. // typedef enum _WDF_BUGCHECK_CODES { WDF_POWER_ROUTINE_TIMED_OUT = 0x1, WDF_RECURSIVE_LOCK = 0x2, WDF_VERIFIER_FATAL_ERROR = 0x3, WDF_REQUIRED_PARAMETER_IS_NULL = 0x4, WDF_INVALID_HANDLE = 0x5, WDF_REQUEST_FATAL_ERROR = 0x6, WDF_OBJECT_ERROR = 0x7, WDF_DMA_FATAL_ERROR = 0x8, WDF_INVALID_INTERRUPT = 0x9, WDF_QUEUE_FATAL_ERROR = 0xA, WDF_INVALID_LOCK_OPERATION = 0xB, WDF_PNP_FATAL_ERROR = 0xC, WDF_POWER_MULTIPLE_PPO = 0xD, WDF_VERIFIER_IRQL_MISMATCH = 0xE, WDF_VERIFIER_CRITICAL_REGION_MISMATCH = 0xF, } WDF_BUGCHECK_CODES; typedef enum _WDF_REQUEST_FATAL_ERROR_CODES { WDF_REQUEST_FATAL_ERROR_NO_MORE_STACK_LOCATIONS = 0x1, WDF_REQUEST_FATAL_ERROR_NULL_IRP = 0x2, WDF_REQUEST_FATAL_ERROR_REQUEST_ALREADY_SENT = 0x3, WDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH = 0x4, WDF_REQUEST_FATAL_ERROR_REQUEST_NOT_IN_QUEUE = 05, } WDF_REQUEST_FATAL_ERROR_CODES; typedef struct _WDF_POWER_ROUTINE_TIMED_OUT_DATA { // // Current power state associated with the timed out device // WDF_DEVICE_POWER_STATE PowerState; // // Current power policy state associated with the timed out device // WDF_DEVICE_POWER_POLICY_STATE PowerPolicyState; // // The device object for the timed out device // PDEVICE_OBJECT DeviceObject; // // The handle for the timed out device // WDFDEVICE Device; // // The thread which is stuck // PKTHREAD TimedOutThread; } WDF_POWER_ROUTINE_TIMED_OUT_DATA; typedef struct _WDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA { WDFREQUEST Request; PIRP Irp; ULONG OutputBufferLength; ULONG_PTR Information; UCHAR MajorFunction; } WDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA, *PWDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA; typedef struct _WDF_QUEUE_FATAL_ERROR_DATA { WDFQUEUE Queue; WDFREQUEST Request; NTSTATUS Status; } WDF_QUEUE_FATAL_ERROR_DATA, *PWDF_QUEUE_FATAL_ERROR_DATA; #endif // (NTDDI_VERSION >= NTDDI_WIN2K) WDF_EXTERN_C_END #endif // _WDFBUGCODES_H_