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