ReactOS 0.4.16-dev-1946-g52006dd
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
12
13typedef BOOLEAN
15 _In_ WDFDEVICE Device,
16 _In_ WDFREQUEST Request,
17 _In_opt_ WDFFILEOBJECT FileObject);
18
19// _WDFCX_FILEOBJECT_CONFIG_V1_17
20
22 //
23 // Size of this structure in bytes
24 //
26
27 //
28 // Event callback for create requests
29 //
31
32 //
33 // Event callback for close requests
34 //
36
37 //
38 // Event callback for cleanup requests
39 //
41
42 //
43 // If WdfTrue, create/cleanup/close file object related requests will be
44 // sent down the stack.
45 //
46 // If WdfFalse, create/cleanup/close will be completed at this location in
47 // the device stack.
48 //
49 // If WdfDefault, behavior depends on device type
50 // FDO, PDO, Control: use the WdfFalse behavior
51 // Filter: use the WdfTrue behavior
52 //
54
55 //
56 // Specify whether framework should create WDFFILEOBJECT and also
57 // whether it can FsContexts fields in the WDM fileobject to store
58 // WDFFILEOBJECT so that it can avoid table look up and improve perf.
59 //
61
63
64typedef NTSTATUS
66 _In_ WDFDEVICE Device,
69
72 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
74
75typedef NTSTATUS
77 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
85
86typedef VOID
88 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
91
92typedef VOID
94 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
97
98typedef VOID
100 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
104
105typedef VOID
107 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
109 _In_ ULONG BugCheckCode,
110 _In_ ULONG_PTR BugCheckParameter1,
111 _In_ ULONG_PTR BugCheckParameter2,
112 _In_ ULONG_PTR BugCheckParameter3,
113 _In_ ULONG_PTR BugCheckParameter4);
114
115typedef WDFIOTARGET
117 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
118 _In_ WDFDEVICE Device);
119
120typedef VOID
122 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
124
125typedef NTSTATUS
127 _In_ PWDF_DRIVER_GLOBALS DriverGlobals,
128 _In_ WDFIOTARGET IoTarget,
129 _In_ WDFQUEUE Queue);
130
131/* Class Extension support */
133 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
134 _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals);
135
137 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
138 _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals);
139
141
143
145
147 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
148 _Inout_ PWDF_COMPONENT_GLOBALS* ClientGlobals);
149
151 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
152 _Inout_ PWDF_COMPONENT_GLOBALS* ClientGlobals);
153
155 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
156 _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals);
157
159 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
160 _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals);
161
162#endif // _WDFCX_H_
#define VOID
Definition: acefi.h:82
_In_ PIRP Irp
Definition: csq.h:116
#define NTSTATUS
Definition: precomp.h:19
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT CxDeviceInit
Definition: fxdynamics.h:897
_Must_inspect_result_ _In_ PWDFCXDEVICE_INIT _In_ PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS EvtCxDeviceWdmIrpPreprocess
Definition: fxdynamics.h:899
_In_ PWDFCXDEVICE_INIT _In_ PWDFCX_FILEOBJECT_CONFIG CxFileObjectConfig
Definition: fxdynamics.h:945
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _When_(c, a)
Definition: no_sal2.h:38
#define BOOLEAN
Definition: pedump.c:73
WDF_TRI_STATE AutoForwardCleanupClose
Definition: wdfcx.h:53
PFN_WDF_FILE_CLEANUP EvtFileCleanup
Definition: wdfcx.h:40
PFN_WDFCX_DEVICE_FILE_CREATE EvtCxDeviceFileCreate
Definition: wdfcx.h:30
PFN_WDF_FILE_CLOSE EvtFileClose
Definition: wdfcx.h:35
WDF_FILEOBJECT_CLASS FileObjectClass
Definition: wdfcx.h:60
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG_PTR
Definition: typedefs.h:65
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfcontrol.h:113
PWDFCXDEVICE_INIT(NTAPI * PFN_WDFCXDEVICEINITALLOCATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit)
Definition: wdfcx.h:71
VOID(NTAPI * PFN_WDF_CLIENT_UNBIND_CLASS)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals)
Definition: wdfcx.h:158
VOID(NTAPI * PFN_WDF_CLASS_EXTENSIONIN_UNBIND)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals)
Definition: wdfcx.h:136
VOID(NTAPI * PFN_WDFCXDEVICEINITSETREQUESTATTRIBUTES)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes)
Definition: wdfcx.h:93
BOOLEAN(NTAPI * PFN_WDFCX_DEVICE_FILE_CREATE)(_In_ WDFDEVICE Device, _In_ WDFREQUEST Request, _In_opt_ WDFFILEOBJECT FileObject)
Definition: wdfcx.h:14
VOID(NTAPI * 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:106
struct _WDFCX_FILEOBJECT_CONFIG * PWDFCX_FILEOBJECT_CONFIG
NTSTATUS(NTAPI * PFN_WDFIOTARGETSELFASSIGNDEFAULTIOQUEUE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFIOTARGET IoTarget, _In_ WDFQUEUE Queue)
Definition: wdfcx.h:126
struct _WDFCX_FILEOBJECT_CONFIG WDFCX_FILEOBJECT_CONFIG
PVOID(NTAPI * PFN_WDF_CLASS_EXPORT)(VOID)
Definition: wdfcx.h:140
VOID(NTAPI * 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:99
VOID(NTAPI * PFN_WDFDEVICEINITALLOWSELFIOTARGET)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFDEVICE_INIT DeviceInit)
Definition: wdfcx.h:121
VOID(NTAPI * PFN_WDFCXDEVICEINITSETIOINCALLERCONTEXTCALLBACK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ PWDFCXDEVICE_INIT CxDeviceInit, _In_ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext)
Definition: wdfcx.h:87
NTSTATUS(NTAPI * PFN_WDFCXDEVICE_WDM_IRP_PREPROCESS)(_In_ WDFDEVICE Device, _Inout_ PIRP Irp, _In_ PVOID DispatchContext)
Definition: wdfcx.h:65
NTSTATUS(NTAPI * PFN_WDF_CLASS_LIBRARY_INITIALIZE)(VOID)
Definition: wdfcx.h:142
NTSTATUS(NTAPI * PFN_WDF_CLASS_LIBRARY_BIND_CLIENT)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _Inout_ PWDF_COMPONENT_GLOBALS *ClientGlobals)
Definition: wdfcx.h:146
WDFIOTARGET(NTAPI * PFN_WDFDEVICEGETSELFIOTARGET)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device)
Definition: wdfcx.h:116
VOID(NTAPI * PFN_WDF_CLASS_LIBRARY_UNBIND_CLIENT)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _Inout_ PWDF_COMPONENT_GLOBALS *ClientGlobals)
Definition: wdfcx.h:150
NTSTATUS(NTAPI * PFN_WDF_CLASS_EXTENSIONIN_BIND)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals)
Definition: wdfcx.h:132
NTSTATUS(NTAPI * 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:76
NTSTATUS(NTAPI * PFN_WDF_CLIENT_BIND_CLASS)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals)
Definition: wdfcx.h:154
VOID(NTAPI * PFN_WDF_CLASS_LIBRARY_DEINITIALIZE)(VOID)
Definition: wdfcx.h:144
_In_ PWDFDEVICE_INIT _In_ PWDF_FILEOBJECT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
Definition: wdfdevice.h:3406
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT _Inout_ PIRP _In_ WDFCONTEXT DispatchContext
Definition: wdfdevice.h:1714
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
Definition: wdfdevice.h:3511
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfdevice.h:3437
enum _WDF_FILEOBJECT_CLASS WDF_FILEOBJECT_CLASS
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR _In_ ULONG NumMinorFunctions
Definition: wdfdevice.h:3474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2231
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PFN_WDFDEVICE_WDM_IRP_PREPROCESS _In_ UCHAR _In_opt_ PUCHAR MinorFunctions
Definition: wdfdevice.h:3471
EVT_WDF_IO_IN_CALLER_CONTEXT * PFN_WDF_IO_IN_CALLER_CONTEXT
Definition: wdfdevice.h:1734
EVT_WDF_FILE_CLOSE * PFN_WDF_FILE_CLOSE
Definition: wdfdevice.h:565
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1703
EVT_WDF_FILE_CLEANUP * PFN_WDF_FILE_CLEANUP
Definition: wdfdevice.h:578
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
Definition: wdfiotarget.h:368
struct WDFCXDEVICE_INIT * PWDFCXDEVICE_INIT
Definition: wdftypes.h:100
enum _WDF_TRI_STATE WDF_TRI_STATE
unsigned char UCHAR
Definition: xmlstorage.h:181