1 /*++ 2 3 Copyright (c) Microsoft Corporation. All rights reserved. 4 5 _WdfVersionBuild_ 6 7 Module Name: 8 9 wdfbugcodes.h 10 11 Abstract: 12 13 Lists bugcheck subcode values for the WDF_VIOLATION bugcheck code 14 15 Environment: 16 17 kernel mode only 18 19 Revision History: 20 21 --*/ 22 23 // 24 // NOTE: This header is generated by stubwork. Please make any 25 // modifications to the corresponding template files 26 // (.x or .y) and use stubwork to regenerate the header 27 // 28 29 #ifndef _WDFBUGCODES_H_ 30 #define _WDFBUGCODES_H_ 31 32 #ifndef WDF_EXTERN_C 33 #ifdef __cplusplus 34 #define WDF_EXTERN_C extern "C" 35 #define WDF_EXTERN_C_START extern "C" { 36 #define WDF_EXTERN_C_END } 37 #else 38 #define WDF_EXTERN_C 39 #define WDF_EXTERN_C_START 40 #define WDF_EXTERN_C_END 41 #endif 42 #endif 43 44 WDF_EXTERN_C_START 45 46 47 48 #if (NTDDI_VERSION >= NTDDI_WIN2K) 49 50 // 51 // These values are used in Parameter 1 in the bugcheck data 52 // 53 // NOTE: Do not change these codes, only add to the end. 54 // The OCA analysis and debugger tools will look at 55 // these codes to perform fault analysis. 56 // 57 typedef enum _WDF_BUGCHECK_CODES { 58 WDF_POWER_ROUTINE_TIMED_OUT = 0x1, 59 WDF_RECURSIVE_LOCK = 0x2, 60 WDF_VERIFIER_FATAL_ERROR = 0x3, 61 WDF_REQUIRED_PARAMETER_IS_NULL = 0x4, 62 WDF_INVALID_HANDLE = 0x5, 63 WDF_REQUEST_FATAL_ERROR = 0x6, 64 WDF_OBJECT_ERROR = 0x7, 65 WDF_DMA_FATAL_ERROR = 0x8, 66 WDF_INVALID_INTERRUPT = 0x9, 67 WDF_QUEUE_FATAL_ERROR = 0xA, 68 WDF_INVALID_LOCK_OPERATION = 0xB, 69 WDF_PNP_FATAL_ERROR = 0xC, 70 WDF_POWER_MULTIPLE_PPO = 0xD, 71 WDF_VERIFIER_IRQL_MISMATCH = 0xE, 72 WDF_VERIFIER_CRITICAL_REGION_MISMATCH = 0xF, 73 } WDF_BUGCHECK_CODES; 74 75 typedef enum _WDF_REQUEST_FATAL_ERROR_CODES { 76 WDF_REQUEST_FATAL_ERROR_NO_MORE_STACK_LOCATIONS = 0x1, 77 WDF_REQUEST_FATAL_ERROR_NULL_IRP = 0x2, 78 WDF_REQUEST_FATAL_ERROR_REQUEST_ALREADY_SENT = 0x3, 79 WDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH = 0x4, 80 WDF_REQUEST_FATAL_ERROR_REQUEST_NOT_IN_QUEUE = 05, 81 } WDF_REQUEST_FATAL_ERROR_CODES; 82 83 84 85 typedef struct _WDF_POWER_ROUTINE_TIMED_OUT_DATA { 86 // 87 // Current power state associated with the timed out device 88 // 89 WDF_DEVICE_POWER_STATE PowerState; 90 91 // 92 // Current power policy state associated with the timed out device 93 // 94 WDF_DEVICE_POWER_POLICY_STATE PowerPolicyState; 95 96 // 97 // The device object for the timed out device 98 // 99 PDEVICE_OBJECT DeviceObject; 100 101 // 102 // The handle for the timed out device 103 // 104 WDFDEVICE Device; 105 106 // 107 // The thread which is stuck 108 // 109 PKTHREAD TimedOutThread; 110 111 } WDF_POWER_ROUTINE_TIMED_OUT_DATA; 112 113 typedef struct _WDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA { 114 WDFREQUEST Request; 115 116 PIRP Irp; 117 118 ULONG OutputBufferLength; 119 120 ULONG_PTR Information; 121 122 UCHAR MajorFunction; 123 124 } WDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA, 125 *PWDF_REQUEST_FATAL_ERROR_INFORMATION_LENGTH_MISMATCH_DATA; 126 127 typedef struct _WDF_QUEUE_FATAL_ERROR_DATA { 128 WDFQUEUE Queue; 129 130 WDFREQUEST Request; 131 132 NTSTATUS Status; 133 134 } WDF_QUEUE_FATAL_ERROR_DATA, *PWDF_QUEUE_FATAL_ERROR_DATA; 135 136 137 138 139 #endif // (NTDDI_VERSION >= NTDDI_WIN2K) 140 141 142 WDF_EXTERN_C_END 143 144 #endif // _WDFBUGCODES_H_ 145 146