xref: /reactos/sdk/include/wdf/kmdf/1.17/wdfbugcodes.h (revision 53221834)
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