ReactOS  0.4.15-dev-3181-g4acf100
wdfcx.h
Go to the documentation of this file.
1 /*
2  * PROJECT: Kernel Mode Device Framework
3  * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4  * PURPOSE: Missing headers (wdfcx.h)
5  * COPYRIGHT: 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
6  */
7 
8 #ifndef _WDFCX_H_
9 #define _WDFCX_H_
10 
11 typedef BOOLEAN
13  _In_ WDFDEVICE Device,
14  _In_ WDFREQUEST Request,
15  _In_opt_ WDFFILEOBJECT FileObject);
16 
17 // _WDFCX_FILEOBJECT_CONFIG_V1_17
18 
19 typedef struct _WDFCX_FILEOBJECT_CONFIG {
20  //
21  // Size of this structure in bytes
22  //
24 
25  //
26  // Event callback for create requests
27  //
29 
30  //
31  // Event callback for close requests
32  //
34 
35  //
36  // Event callback for cleanup requests
37  //
39 
40  //
41  // If WdfTrue, create/cleanup/close file object related requests will be
42  // sent down the stack.
43  //
44  // If WdfFalse, create/cleanup/close will be completed at this location in
45  // the device stack.
46  //
47  // If WdfDefault, behavior depends on device type
48  // FDO, PDO, Control: use the WdfFalse behavior
49  // Filter: use the WdfTrue behavior
50  //
52 
53  //
54  // Specify whether framework should create WDFFILEOBJECT and also
55  // whether it can FsContexts fields in the WDM fileobject to store
56  // WDFFILEOBJECT so that it can avoid table look up and improve perf.
57  //
59 
61 
62 typedef NTSTATUS
64  _In_ WDFDEVICE Device,
67 
68 typedef PWDFCXDEVICE_INIT
72 
73 typedef NTSTATUS
83 
84 typedef VOID
89 
90 typedef VOID
95 
96 typedef VOID
102 
103 typedef VOID
107  _In_ ULONG BugCheckCode,
108  _In_ ULONG_PTR BugCheckParameter1,
109  _In_ ULONG_PTR BugCheckParameter2,
110  _In_ ULONG_PTR BugCheckParameter3,
111  _In_ ULONG_PTR BugCheckParameter4);
112 
113 typedef WDFIOTARGET
116  _In_ WDFDEVICE Device);
117 
118 typedef VOID
122 
123 typedef NTSTATUS
126  _In_ WDFIOTARGET IoTarget,
127  _In_ WDFQUEUE Queue);
128 
129 // some other random stuff
130 
140 
141 #endif // _WDFCX_H_
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT _Inout_ PIRP _In_ WDFCONTEXT DispatchContext
Definition: wdfdevice.h:1697
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS EvtCxDeviceWdmIrpPreprocess
Definition: fxdynamics.h:1012
struct WDFCXDEVICE_INIT * PWDFCXDEVICE_INIT
Definition: wdftypes.h:100
PVOID PFN_WDF_CLASS_LIBRARY_UNBIND_CLIENT
Definition: wdfcx.h:137
#define _In_opt_
Definition: ms_sal.h:309
NTSTATUS(STDCALL * PFN_WDFIOTARGETSELFASSIGNDEFAULTIOQUEUE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ WDFQUEUE Queue)
Definition: wdfcx.h:124
#define _Inout_
Definition: ms_sal.h:378
PVOID PFN_WDF_CLIENT_BIND_CLASS
Definition: wdfcx.h:138
PVOID PFN_WDF_CLASS_LIBRARY_BIND_CLIENT
Definition: wdfcx.h:136
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2221
enum _WDF_TRI_STATE WDF_TRI_STATE
unsigned char * PUCHAR
Definition: retypes.h:3
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR MinorFunctions
Definition: wdfdevice.h:3465
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
EVT_WDF_FILE_CLEANUP * PFN_WDF_FILE_CLEANUP
Definition: wdfdevice.h:578
DriverGlobals
#define _When_(expr, annos)
Definition: ms_sal.h:254
PVOID PFN_WDF_CLASS_LIBRARY_DEINITIALIZE
Definition: wdfcx.h:135
VOID(STDCALL * PFN_WDFCXDEVICEINITSETFILEOBJECTCONFIG)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig, _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes)
Definition: wdfcx.h:97
BOOLEAN(STDCALL * PFN_WDFCX_DEVICE_FILE_CREATE)(_In_ WDFDEVICE Device, _In_ WDFREQUEST Request, _In_opt_ WDFFILEOBJECT FileObject)
Definition: wdfcx.h:12
_In_ PWDFDEVICE_INIT _In_ PWDF_FILEOBJECT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
Definition: wdfdevice.h:3395
uint32_t ULONG_PTR
Definition: typedefs.h:65
NTSTATUS(STDCALL * PFN_WDFCXDEVICEINITASSIGNWDMIRPPREPROCESSCALLBACK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS EvtCxDeviceWdmIrpPreprocess, _In_ UCHAR MajorFunction, _When_(NumMinorFunctions > 0, _In_reads_bytes_(NumMinorFunctions)) _When_(NumMinorFunctions==0, _In_opt_) PUCHAR MinorFunctions, _In_ ULONG NumMinorFunctions)
Definition: wdfcx.h:74
NTSTATUS(STDCALL * PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS)(_In_ WDFDEVICE Device, _Inout_ PIRP Irp, _In_ PVOID DispatchContext)
Definition: wdfcx.h:63
PFN_WDFCX_DEVICE_FILE_CREATE EvtCxDeviceFileCreate
Definition: wdfcx.h:28
_In_ PIRP Irp
Definition: csq.h:116
struct _WDFCX_FILEOBJECT_CONFIG * PWDFCX_FILEOBJECT_CONFIG
EVT_WDF_FILE_CLOSE * PFN_WDF_FILE_CLOSE
Definition: wdfdevice.h:565
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfdevice.h:3428
enum _WDF_FILEOBJECT_CLASS WDF_FILEOBJECT_CLASS
WDFIOTARGET(STDCALL * PFN_WDFDEVICEGETSELFIOTARGET)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device)
Definition: wdfcx.h:114
#define _In_
Definition: ms_sal.h:308
VOID(STDCALL * PFN_WDFCXDEVICEINITSETIOINCALLERCONTEXTCALLBACK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext)
Definition: wdfcx.h:85
VOID(STDCALL * PFN_WDFCXDEVICEINITSETREQUESTATTRIBUTES)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes)
Definition: wdfcx.h:91
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
PFN_WDF_FILE_CLOSE EvtFileClose
Definition: wdfcx.h:33
_In_ PWDFCXDEVICE_INIT _In_ PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig
Definition: fxdynamics.h:1058
#define STDCALL
Definition: wdf.h:45
VOID(STDCALL * PFN_WDFCXVERIFIERKEBUGCHECK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_opt_ WDFOBJECT Object, _In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
Definition: wdfcx.h:104
PWDFCXDEVICE_INIT(STDCALL * PFN_WDFCXDEVICEINITALLOCATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit)
Definition: wdfcx.h:69
PVOID PFN_WDF_CLASS_LIBRARY_INITIALIZE
Definition: wdfcx.h:134
unsigned char UCHAR
Definition: xmlstorage.h:181
#define NTSTATUS
Definition: precomp.h:20
#define VOID
Definition: acefi.h:82
VOID(STDCALL * PFN_WDFDEVICEINITALLOWSELFIOTARGET)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit)
Definition: wdfcx.h:119
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
PVOID PFN_WDF_CLASS_EXTENSIONIN_BIND
Definition: wdfcx.h:131
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR _In_ ULONG NumMinorFunctions
Definition: wdfdevice.h:3465
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1697
PVOID PFN_WDF_CLIENT_UNBIND_CLASS
Definition: wdfcx.h:139
WDF_FILEOBJECT_CLASS FileObjectClass
Definition: wdfcx.h:58
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
Definition: wdfdevice.h:3502
#define BOOLEAN
Definition: pedump.c:73
PVOID PFN_WDF_CLASS_EXPORT
Definition: wdfcx.h:133
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT CxDeviceInit
Definition: fxdynamics.h:1012
unsigned int ULONG
Definition: retypes.h:1
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
Definition: wdfiotarget.h:363
PVOID PFN_WDF_CLASS_EXTENSIONIN_UNBIND
Definition: wdfcx.h:132
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfcontrol.h:113
struct _WDFCX_FILEOBJECT_CONFIG WDFCX_FILEOBJECT_CONFIG
EVT_WDF_IO_IN_CALLER_CONTEXT * PFN_WDF_IO_IN_CALLER_CONTEXT
Definition: wdfdevice.h:1728
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
WDF_TRI_STATE AutoForwardCleanupClose
Definition: wdfcx.h:51
PFN_WDF_FILE_CLEANUP EvtFileCleanup
Definition: wdfcx.h:38