xref: /reactos/sdk/include/wdf/kmdf/1.17/wdfglobals.h (revision 40462c92)
1*40462c92SVictor Perevertkin /*++
2*40462c92SVictor Perevertkin 
3*40462c92SVictor Perevertkin Copyright (c) Microsoft Corporation
4*40462c92SVictor Perevertkin 
5*40462c92SVictor Perevertkin Module Name:
6*40462c92SVictor Perevertkin 
7*40462c92SVictor Perevertkin     WdfGlobals.h
8*40462c92SVictor Perevertkin 
9*40462c92SVictor Perevertkin Abstract:
10*40462c92SVictor Perevertkin 
11*40462c92SVictor Perevertkin     This module contains globals definitions for the frameworks.
12*40462c92SVictor Perevertkin 
13*40462c92SVictor Perevertkin Environment:
14*40462c92SVictor Perevertkin 
15*40462c92SVictor Perevertkin     kernel mode only
16*40462c92SVictor Perevertkin 
17*40462c92SVictor Perevertkin Revision History:
18*40462c92SVictor Perevertkin 
19*40462c92SVictor Perevertkin 
20*40462c92SVictor Perevertkin --*/
21*40462c92SVictor Perevertkin 
22*40462c92SVictor Perevertkin //
23*40462c92SVictor Perevertkin // NOTE: This header is generated by stubwork.  Please make any
24*40462c92SVictor Perevertkin //       modifications to the corresponding template files
25*40462c92SVictor Perevertkin //       (.x or .y) and use stubwork to regenerate the header
26*40462c92SVictor Perevertkin //
27*40462c92SVictor Perevertkin 
28*40462c92SVictor Perevertkin #ifndef _WDFGLOBALS_H_
29*40462c92SVictor Perevertkin #define _WDFGLOBALS_H_
30*40462c92SVictor Perevertkin 
31*40462c92SVictor Perevertkin #ifndef WDF_EXTERN_C
32*40462c92SVictor Perevertkin   #ifdef __cplusplus
33*40462c92SVictor Perevertkin     #define WDF_EXTERN_C       extern "C"
34*40462c92SVictor Perevertkin     #define WDF_EXTERN_C_START extern "C" {
35*40462c92SVictor Perevertkin     #define WDF_EXTERN_C_END   }
36*40462c92SVictor Perevertkin   #else
37*40462c92SVictor Perevertkin     #define WDF_EXTERN_C
38*40462c92SVictor Perevertkin     #define WDF_EXTERN_C_START
39*40462c92SVictor Perevertkin     #define WDF_EXTERN_C_END
40*40462c92SVictor Perevertkin   #endif
41*40462c92SVictor Perevertkin #endif
42*40462c92SVictor Perevertkin 
43*40462c92SVictor Perevertkin WDF_EXTERN_C_START
44*40462c92SVictor Perevertkin 
45*40462c92SVictor Perevertkin 
46*40462c92SVictor Perevertkin 
47*40462c92SVictor Perevertkin #ifdef __cplusplus
48*40462c92SVictor Perevertkin extern "C" {
49*40462c92SVictor Perevertkin #endif
50*40462c92SVictor Perevertkin 
51*40462c92SVictor Perevertkin #define WDF_DRIVER_GLOBALS_NAME_LEN (32)
52*40462c92SVictor Perevertkin 
53*40462c92SVictor Perevertkin typedef struct _WDF_DRIVER_GLOBALS {
54*40462c92SVictor Perevertkin 
55*40462c92SVictor Perevertkin     // backpointer to the handle for this driver
56*40462c92SVictor Perevertkin     WDFDRIVER Driver;
57*40462c92SVictor Perevertkin 
58*40462c92SVictor Perevertkin     // Flags indicated by the driver during create
59*40462c92SVictor Perevertkin     ULONG DriverFlags;
60*40462c92SVictor Perevertkin 
61*40462c92SVictor Perevertkin     // Tag generated by WDF for the driver.  Tag used by allocations made on
62*40462c92SVictor Perevertkin     // behalf of the driver by WDF.
63*40462c92SVictor Perevertkin     ULONG DriverTag;
64*40462c92SVictor Perevertkin 
65*40462c92SVictor Perevertkin     CHAR DriverName[WDF_DRIVER_GLOBALS_NAME_LEN];
66*40462c92SVictor Perevertkin 
67*40462c92SVictor Perevertkin     // If TRUE, the stub code will capture DriverObject->DriverUnload and insert
68*40462c92SVictor Perevertkin     // itself first in the unload chain.  If FALSE, DriverUnload is left alone
69*40462c92SVictor Perevertkin     // (but WDF will not be notified of unload and there will be no auto cleanup).
70*40462c92SVictor Perevertkin     BOOLEAN DisplaceDriverUnload;
71*40462c92SVictor Perevertkin 
72*40462c92SVictor Perevertkin } WDF_DRIVER_GLOBALS, *PWDF_DRIVER_GLOBALS;
73*40462c92SVictor Perevertkin 
74*40462c92SVictor Perevertkin 
75*40462c92SVictor Perevertkin 
76*40462c92SVictor Perevertkin 
77*40462c92SVictor Perevertkin 
78*40462c92SVictor Perevertkin #ifdef __cplusplus
79*40462c92SVictor Perevertkin }
80*40462c92SVictor Perevertkin #endif
81*40462c92SVictor Perevertkin 
82*40462c92SVictor Perevertkin WDF_EXTERN_C_END
83*40462c92SVictor Perevertkin 
84*40462c92SVictor Perevertkin #endif // _WDFGLOBALS_H_
85*40462c92SVictor Perevertkin 
86