ReactOS 0.4.15-dev-7704-gc07eb9f
fxtargetsshared.hpp
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 corepriv.hpp
8
9Abstract:
10
11 This is the main driver framework.
12
13Author:
14
15
16
17Environment:
18
19 Both kernel and user mode
20
21Revision History:
22
23--*/
24
25#pragma once
26
27#if ((FX_CORE_MODE)==(FX_CORE_USER_MODE))
28#define FX_IS_USER_MODE (TRUE)
29#define FX_IS_KERNEL_MODE (FALSE)
30#elif ((FX_CORE_MODE)==(FX_CORE_KERNEL_MODE))
31#define FX_IS_USER_MODE (FALSE)
32#define FX_IS_KERNEL_MODE (TRUE)
33#endif
34
35extern "C" {
36#include "mx.h"
37}
38
39#include "fxmin.hpp"
40
41
42
43#include "wdfmemory.h"
44#include "wdfrequest.h"
45#include "wdfdevice.h"
46#include "wdfwmi.h"
47#include "wdfchildlist.h"
48#include "wdfpdo.h"
49#include "wdffdo.h"
50#include "wdfiotarget.h"
51#include "wdfcontrol.h"
52#include "wdfcx.h"
53#include "wdfio.h"
54#include "wdfqueryinterface.h"
55
56#include "fxirpqueue.hpp"
57#include "fxcallback.hpp"
58#if (FX_CORE_MODE == FX_CORE_USER_MODE)
59#include "fxirpum.hpp"
60#elif ((FX_CORE_MODE)==(FX_CORE_KERNEL_MODE))
61#include "fxirpkm.hpp"
62#endif
64
65#include "fxcollection.hpp"
68#include "fxrequestcontext.hpp"
70#include "fxrequestbase.hpp"
71#include "fxrequestbuffer.hpp"
72#include "ifxmemory.hpp"
73#include "fxiotarget.hpp"
74#include "fxiotargetremote.hpp"
75#include "fxiotargetself.hpp"
76
77
78
79
80
81
82
83//
84// Versioning of structures for wdfIoTarget.h
85//
87 //
88 // Size of this structure in bytes
89 //
90 ULONG Size;
91
92 //
93 // Indicates which fields of this structure are going to be used in
94 // creating the WDFIOTARGET.
95 //
97
98 //
99 // Notification when the target is being queried for removal.
100 // If !NT_SUCCESS is returned, the query will fail and the target will
101 // remain opened.
102 //
104
105 //
106 // The previous query remove has been canceled and the target can now be
107 // reopened.
108 //
110
111 //
112 // The query remove has succeeded and the target is now removed from the
113 // system.
114 //
116
117 // ========== WdfIoTargetOpenUseExistingDevice begin ==========
118 //
119 // The device object to send requests to
120 //
122
123 //
124 // File object representing the TargetDeviceObject. The PFILE_OBJECT will
125 // be passed as a parameter in all requests sent to the resulting
126 // WDFIOTARGET.
127 //
129
130 // ========== WdfIoTargetOpenUseExistingDevice end ==========
131 //
132 // ========== WdfIoTargetOpenByName begin ==========
133 //
134 // Name of the device to open.
135 //
137
138 //
139 // The access desired on the device being opened up, ie WDM FILE_XXX_ACCESS
140 // such as FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, or
141 // FILE_WRITE_ACCESS or you can use values such as GENERIC_READ,
142 // GENERIC_WRITE, or GENERIC_ALL.
143 //
145
146 //
147 // Share access desired on the target being opened, ie WDM FILE_SHARE_XXX
148 // values such as FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE.
149 //
150 // A zero value means exclusive access to the target.
151 //
153
154 //
155 // File attributes, see ZwCreateFile in the DDK for a list of valid
156 // values and their meaning.
157 //
159
160 //
161 // Create disposition, see ZwCreateFile in the DDK for a list of valid
162 // values and their meaning.
163 //
165
166 //
167 // Options for opening the device, see CreateOptions for ZwCreateFile in the
168 // DDK for a list of valid values and their meaning.
169 //
171
173
175
177
178 // ========== WdfIoTargetOpenByName end ==========
179 //
180 //
181 // On return for a create by name, this will contain one of the following
182 // values: FILE_CREATED, FILE_OPENED, FILE_OVERWRITTEN, FILE_SUPERSEDED,
183 // FILE_EXISTS, FILE_DOES_NOT_EXIST
184 //
186
struct _WDF_IO_TARGET_OPEN_PARAMS_V1_11 WDF_IO_TARGET_OPEN_PARAMS_V1_11
struct _WDF_IO_TARGET_OPEN_PARAMS_V1_11 * PWDF_IO_TARGET_OPEN_PARAMS_V1_11
ULONG ACCESS_MASK
Definition: nt_native.h:40
__GNU_EXTENSION typedef __int64 * PLONGLONG
Definition: ntbasedef.h:382
PFN_WDF_IO_TARGET_REMOVE_CANCELED EvtIoTargetRemoveCanceled
Definition: wdf111.h:1645
UNICODE_STRING TargetDeviceName
Definition: wdf111.h:1672
PDEVICE_OBJECT TargetDeviceObject
Definition: wdf111.h:1657
PFN_WDF_IO_TARGET_REMOVE_COMPLETE EvtIoTargetRemoveComplete
Definition: wdf111.h:1651
PFN_WDF_IO_TARGET_QUERY_REMOVE EvtIoTargetQueryRemove
Definition: wdf111.h:1639
WDF_IO_TARGET_OPEN_TYPE Type
Definition: wdf111.h:1632
uint32_t ULONG
Definition: typedefs.h:59
enum _WDF_IO_TARGET_OPEN_TYPE WDF_IO_TARGET_OPEN_TYPE
EVT_WDF_IO_TARGET_REMOVE_CANCELED * PFN_WDF_IO_TARGET_REMOVE_CANCELED
Definition: wdfiotarget.h:108
EVT_WDF_IO_TARGET_REMOVE_COMPLETE * PFN_WDF_IO_TARGET_REMOVE_COMPLETE
Definition: wdfiotarget.h:121
EVT_WDF_IO_TARGET_QUERY_REMOVE * PFN_WDF_IO_TARGET_QUERY_REMOVE
Definition: wdfiotarget.h:95
* PFILE_OBJECT
Definition: iotypes.h:1998