18a978a17SVictor Perevertkin /*++ 28a978a17SVictor Perevertkin 38a978a17SVictor Perevertkin Copyright (c) Microsoft Corporation 48a978a17SVictor Perevertkin 58a978a17SVictor Perevertkin Module Name: 68a978a17SVictor Perevertkin 78a978a17SVictor Perevertkin FxCxDeviceInit.hpp 88a978a17SVictor Perevertkin 98a978a17SVictor Perevertkin Abstract: 108a978a17SVictor Perevertkin 118a978a17SVictor Perevertkin 128a978a17SVictor Perevertkin Author: 138a978a17SVictor Perevertkin 148a978a17SVictor Perevertkin 158a978a17SVictor Perevertkin Environment: 168a978a17SVictor Perevertkin 178a978a17SVictor Perevertkin kernel mode only 188a978a17SVictor Perevertkin 198a978a17SVictor Perevertkin Revision History: 208a978a17SVictor Perevertkin 218a978a17SVictor Perevertkin --*/ 228a978a17SVictor Perevertkin 238a978a17SVictor Perevertkin #ifndef __FXCXDEVICEINIT_HPP__ 248a978a17SVictor Perevertkin #define __FXCXDEVICEINIT_HPP__ 258a978a17SVictor Perevertkin 268a978a17SVictor Perevertkin // 278a978a17SVictor Perevertkin // Holds class extension file object configuration. 288a978a17SVictor Perevertkin // 298a978a17SVictor Perevertkin struct CxFileObjectInit { 308a978a17SVictor Perevertkin WDF_FILEOBJECT_CLASS Class; 318a978a17SVictor Perevertkin 328a978a17SVictor Perevertkin WDF_OBJECT_ATTRIBUTES Attributes; 338a978a17SVictor Perevertkin 348a978a17SVictor Perevertkin WDFCX_FILEOBJECT_CONFIG Callbacks; 358a978a17SVictor Perevertkin 368a978a17SVictor Perevertkin WDF_TRI_STATE AutoForwardCleanupClose; 378a978a17SVictor Perevertkin 388a978a17SVictor Perevertkin BOOLEAN Set; 398a978a17SVictor Perevertkin }; 408a978a17SVictor Perevertkin 418a978a17SVictor Perevertkin // 428a978a17SVictor Perevertkin // The typedef for a pointer to this structure is exposed in wdfdevice.h 438a978a17SVictor Perevertkin // 448a978a17SVictor Perevertkin struct WDFCXDEVICE_INIT : public FxStump { 458a978a17SVictor Perevertkin public: 468a978a17SVictor Perevertkin WDFCXDEVICE_INIT(); 478a978a17SVictor Perevertkin ~WDFCXDEVICE_INIT(); 488a978a17SVictor Perevertkin 498a978a17SVictor Perevertkin static 508a978a17SVictor Perevertkin _Must_inspect_result_ 518a978a17SVictor Perevertkin PWDFCXDEVICE_INIT 528a978a17SVictor Perevertkin _AllocateCxDeviceInit( 538a978a17SVictor Perevertkin __in PWDFDEVICE_INIT DeviceInit 548a978a17SVictor Perevertkin ); 558a978a17SVictor Perevertkin 568a978a17SVictor Perevertkin public: 578a978a17SVictor Perevertkin // 588a978a17SVictor Perevertkin // Class extension init list entry. 598a978a17SVictor Perevertkin // 608a978a17SVictor Perevertkin LIST_ENTRY ListEntry; 618a978a17SVictor Perevertkin 628a978a17SVictor Perevertkin // 638a978a17SVictor Perevertkin // Client and Cx's globals. 648a978a17SVictor Perevertkin // 658a978a17SVictor Perevertkin PFX_DRIVER_GLOBALS ClientDriverGlobals; 668a978a17SVictor Perevertkin PFX_DRIVER_GLOBALS CxDriverGlobals; 678a978a17SVictor Perevertkin 688a978a17SVictor Perevertkin // 698a978a17SVictor Perevertkin // Pre-proc info. 708a978a17SVictor Perevertkin // 718a978a17SVictor Perevertkin FxIrpPreprocessInfo* PreprocessInfo; 728a978a17SVictor Perevertkin 738a978a17SVictor Perevertkin // 748a978a17SVictor Perevertkin // In caller context info. 758a978a17SVictor Perevertkin // 768a978a17SVictor Perevertkin PFN_WDF_IO_IN_CALLER_CONTEXT IoInCallerContextCallback; 778a978a17SVictor Perevertkin 788a978a17SVictor Perevertkin // 798a978a17SVictor Perevertkin // Request attributes info. 808a978a17SVictor Perevertkin // 818a978a17SVictor Perevertkin WDF_OBJECT_ATTRIBUTES RequestAttributes; 828a978a17SVictor Perevertkin 838a978a17SVictor Perevertkin // 848a978a17SVictor Perevertkin // File object info. 858a978a17SVictor Perevertkin // 868a978a17SVictor Perevertkin CxFileObjectInit FileObject; 878a978a17SVictor Perevertkin 888a978a17SVictor Perevertkin // 898a978a17SVictor Perevertkin // Set during the device create. 908a978a17SVictor Perevertkin // 918a978a17SVictor Perevertkin FxCxDeviceInfo* CxDeviceInfo; 928a978a17SVictor Perevertkin }; 938a978a17SVictor Perevertkin 94*1f377076SVictor Perevertkin #endif // __FXCXDEVICEINIT_HPP__ 958a978a17SVictor Perevertkin 96