ReactOS 0.4.15-dev-8138-g1e75ea8
wdfwmi.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation. All rights reserved.
4
5_WdfVersionBuild_
6
7Module Name:
8
9 WdfWMI.h
10
11Abstract:
12
13 This is the C interface for WMI support
14
15Environment:
16
17 kernel mode only
18
19Revision History:
20
21--*/
22
23//
24// NOTE: This header is generated by stubwork. Please make any
25// modifications to the corresponding template files
26// (.x or .y) and use stubwork to regenerate the header
27//
28
29#ifndef _WDFWMI_H_
30#define _WDFWMI_H_
31
32#ifndef WDF_EXTERN_C
33 #ifdef __cplusplus
34 #define WDF_EXTERN_C extern "C"
35 #define WDF_EXTERN_C_START extern "C" {
36 #define WDF_EXTERN_C_END }
37 #else
38 #define WDF_EXTERN_C
39 #define WDF_EXTERN_C_START
40 #define WDF_EXTERN_C_END
41 #endif
42#endif
43
45
46
47
48#if (NTDDI_VERSION >= NTDDI_WIN2K)
49
55
56//
57// WdfWmiProviderExpensive:
58// The provider's operations are expensive in terms of resources
59//
60// WdfWmiProviderReadOnly:
61// The provider is read only. No set or set data item callbacks will be
62// made on all instances of this provider.
63//
64// WdfWmiProviderEventOnly:
65// Data item is being used to fire events only. It will not receive any
66// callbacks on it to get / set / execute buffers.
67//
74
75
76
77typedef
78_Function_class_(EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE)
83EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE(
84 _In_
85 WDFWMIINSTANCE WmiInstance,
86 _In_
90 _Out_
92 );
93
94typedef EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE *PFN_WDF_WMI_INSTANCE_QUERY_INSTANCE;
95
96typedef
97_Function_class_(EVT_WDF_WMI_INSTANCE_SET_INSTANCE)
102EVT_WDF_WMI_INSTANCE_SET_INSTANCE(
103 _In_
104 WDFWMIINSTANCE WmiInstance,
105 _In_
108 PVOID InBuffer
109 );
110
111typedef EVT_WDF_WMI_INSTANCE_SET_INSTANCE *PFN_WDF_WMI_INSTANCE_SET_INSTANCE;
112
113typedef
114_Function_class_(EVT_WDF_WMI_INSTANCE_SET_ITEM)
119EVT_WDF_WMI_INSTANCE_SET_ITEM(
120 _In_
121 WDFWMIINSTANCE WmiInstance,
122 _In_
124 _In_
127 PVOID InBuffer
128 );
129
130typedef EVT_WDF_WMI_INSTANCE_SET_ITEM *PFN_WDF_WMI_INSTANCE_SET_ITEM;
131
132typedef
133_Function_class_(EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD)
138EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD(
139 _In_
140 WDFWMIINSTANCE WmiInstance,
141 _In_
143 _In_
145 _In_
150 _Out_
152 );
153
154typedef EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD *PFN_WDF_WMI_INSTANCE_EXECUTE_METHOD;
155
156typedef
157_Function_class_(EVT_WDF_WMI_PROVIDER_FUNCTION_CONTROL)
162EVT_WDF_WMI_PROVIDER_FUNCTION_CONTROL(
163 _In_
164 WDFWMIPROVIDER WmiProvider,
165 _In_
167 _In_
169 );
170
171typedef EVT_WDF_WMI_PROVIDER_FUNCTION_CONTROL *PFN_WDF_WMI_PROVIDER_FUNCTION_CONTROL;
172
174 //
175 // Size of this structure in bytes
176 //
178
179 //
180 // The GUID being registered
181 //
183
184 //
185 // Combination of values from the enum WDF_WMI_PROVIDER_FLAGS
186 //
188
189 //
190 // Minimum expected buffer size for query and set instance requests.
191 // Ignored if WdfWmiProviderEventOnly is set in Flags.
192 //
194
195 //
196 // Callback when caller is opening a provider which ha been marked as
197 // expensive or when a caller is interested in events.
198 //
200
202
204VOID
208 )
209{
211
212 Config->Size = sizeof(WDF_WMI_PROVIDER_CONFIG);
213 RtlCopyMemory(&Config->Guid, Guid, sizeof(GUID));
214}
215
217 //
218 // Size of the structure in bytes
219 //
221
222 //
223 // Optional parameter. If NULL, ProviderConfig must be set to a valid pointer
224 // value. If specified, indicates the provider to create an instance for.
225 //
226 WDFWMIPROVIDER Provider;
227
228 //
229 // Optional parameter. If NULL, Provider must be set to a valid handle
230 // value. If specifeid, indicates the configuration for a provider to be
231 // created and for this instance to be associated with.
232 //
234
235 //
236 // If the Provider is configured as read only and this field is set to TRUE,
237 // the EvtWmiInstanceQueryInstance is ignored and WDF will blindly copy the
238 // context associated with this instance (using RtlCopyMemory, with no locks
239 // held) into the query buffer.
240 //
242
243 //
244 // If TRUE, the instance will be registered as well as created.
245 //
247
248 //
249 // Callback when caller wants to query the entire data item's buffer.
250 //
252
253 //
254 // Callback when caller wants to set the entire data item's buffer.
255 //
257
258 //
259 // Callback when caller wants to set a single field in the data item's buffer
260 //
262
263 //
264 // Callback when caller wants to execute a method on the data item.
265 //
267
269
270
272VOID
275 _In_ WDFWMIPROVIDER Provider
276 )
277{
279 Config->Size = sizeof(WDF_WMI_INSTANCE_CONFIG);
280
281 Config->Provider = Provider;
282}
283
285VOID
288 _In_ PWDF_WMI_PROVIDER_CONFIG ProviderConfig
289 )
290{
292 Config->Size = sizeof(WDF_WMI_INSTANCE_CONFIG);
293
294 Config->ProviderConfig = ProviderConfig;
295}
296
304 )
305{
306 //
307 // Compute the length of buffer we need to use. Upon error the caller can
308 // use this length to report the required length. On success, the caller
309 // can use this length to know how many bytes were written.
310 //
311 *RequiredSize = String->Length + sizeof(USHORT);
312
313 //
314 // UNICODE_STRING.Length is the length of the string in bytes, not characters
315 //
316
317 // First check to see if there is enough space
318 // 1) to store the length of the string
319 // 2) to store the string itself
320 //
321 if (BufferLength < (String->Length + sizeof(USHORT))) {
322 //
323 // Not enough room in the string, report back how big a buffer is
324 // required.
325 //
327 }
328
329 //
330 // Store the length of the string
331 //
332 *(USHORT *) Buffer = String->Length;
333
334 //
335 // Copy the string to the buffer
336 //
338 String->Buffer,
339 String->Length);
340
341 return STATUS_SUCCESS;
342}
343
344//
345// WDF Function: WdfWmiProviderCreate
346//
347typedef
350WDFAPI
352(STDCALL *PFN_WDFWMIPROVIDERCREATE)(
353 _In_
355 _In_
356 WDFDEVICE Device,
357 _In_
361 _Out_
362 WDFWMIPROVIDER* WmiProvider
363 );
364
369WdfWmiProviderCreate(
370 _In_
371 WDFDEVICE Device,
372 _In_
376 _Out_
377 WDFWMIPROVIDER* WmiProvider
378 )
379{
381}
382
383//
384// WDF Function: WdfWmiProviderGetDevice
385//
386typedef
388WDFAPI
389WDFDEVICE
390(STDCALL *PFN_WDFWMIPROVIDERGETDEVICE)(
391 _In_
393 _In_
394 WDFWMIPROVIDER WmiProvider
395 );
396
399WDFDEVICE
400WdfWmiProviderGetDevice(
401 _In_
402 WDFWMIPROVIDER WmiProvider
403 )
404{
405 return ((PFN_WDFWMIPROVIDERGETDEVICE) WdfFunctions[WdfWmiProviderGetDeviceTableIndex])(WdfDriverGlobals, WmiProvider);
406}
407
408//
409// WDF Function: WdfWmiProviderIsEnabled
410//
411typedef
413WDFAPI
415(STDCALL *PFN_WDFWMIPROVIDERISENABLED)(
416 _In_
418 _In_
419 WDFWMIPROVIDER WmiProvider,
420 _In_
422 );
423
427WdfWmiProviderIsEnabled(
428 _In_
429 WDFWMIPROVIDER WmiProvider,
430 _In_
432 )
433{
435}
436
437//
438// WDF Function: WdfWmiProviderGetTracingHandle
439//
440typedef
442WDFAPI
444(STDCALL *PFN_WDFWMIPROVIDERGETTRACINGHANDLE)(
445 _In_
447 _In_
448 WDFWMIPROVIDER WmiProvider
449 );
450
454WdfWmiProviderGetTracingHandle(
455 _In_
456 WDFWMIPROVIDER WmiProvider
457 )
458{
459 return ((PFN_WDFWMIPROVIDERGETTRACINGHANDLE) WdfFunctions[WdfWmiProviderGetTracingHandleTableIndex])(WdfDriverGlobals, WmiProvider);
460}
461
462//
463// WDF Function: WdfWmiInstanceCreate
464//
465typedef
468WDFAPI
470(STDCALL *PFN_WDFWMIINSTANCECREATE)(
471 _In_
473 _In_
474 WDFDEVICE Device,
475 _In_
480 WDFWMIINSTANCE* Instance
481 );
482
487WdfWmiInstanceCreate(
488 _In_
489 WDFDEVICE Device,
490 _In_
495 WDFWMIINSTANCE* Instance
496 )
497{
499}
500
501//
502// WDF Function: WdfWmiInstanceRegister
503//
504typedef
507WDFAPI
509(STDCALL *PFN_WDFWMIINSTANCEREGISTER)(
510 _In_
512 _In_
513 WDFWMIINSTANCE WmiInstance
514 );
515
520WdfWmiInstanceRegister(
521 _In_
522 WDFWMIINSTANCE WmiInstance
523 )
524{
525 return ((PFN_WDFWMIINSTANCEREGISTER) WdfFunctions[WdfWmiInstanceRegisterTableIndex])(WdfDriverGlobals, WmiInstance);
526}
527
528//
529// WDF Function: WdfWmiInstanceDeregister
530//
531typedef
533WDFAPI
534VOID
535(STDCALL *PFN_WDFWMIINSTANCEDEREGISTER)(
536 _In_
538 _In_
539 WDFWMIINSTANCE WmiInstance
540 );
541
544VOID
545WdfWmiInstanceDeregister(
546 _In_
547 WDFWMIINSTANCE WmiInstance
548 )
549{
551}
552
553//
554// WDF Function: WdfWmiInstanceGetDevice
555//
556typedef
558WDFAPI
559WDFDEVICE
560(STDCALL *PFN_WDFWMIINSTANCEGETDEVICE)(
561 _In_
563 _In_
564 WDFWMIINSTANCE WmiInstance
565 );
566
569WDFDEVICE
570WdfWmiInstanceGetDevice(
571 _In_
572 WDFWMIINSTANCE WmiInstance
573 )
574{
575 return ((PFN_WDFWMIINSTANCEGETDEVICE) WdfFunctions[WdfWmiInstanceGetDeviceTableIndex])(WdfDriverGlobals, WmiInstance);
576}
577
578//
579// WDF Function: WdfWmiInstanceGetProvider
580//
581typedef
583WDFAPI
584WDFWMIPROVIDER
585(STDCALL *PFN_WDFWMIINSTANCEGETPROVIDER)(
586 _In_
588 _In_
589 WDFWMIINSTANCE WmiInstance
590 );
591
594WDFWMIPROVIDER
595WdfWmiInstanceGetProvider(
596 _In_
597 WDFWMIINSTANCE WmiInstance
598 )
599{
600 return ((PFN_WDFWMIINSTANCEGETPROVIDER) WdfFunctions[WdfWmiInstanceGetProviderTableIndex])(WdfDriverGlobals, WmiInstance);
601}
602
603//
604// WDF Function: WdfWmiInstanceFireEvent
605//
606typedef
609WDFAPI
611(STDCALL *PFN_WDFWMIINSTANCEFIREEVENT)(
612 _In_
614 _In_
615 WDFWMIINSTANCE WmiInstance,
619 PVOID EventData
620 );
621
626WdfWmiInstanceFireEvent(
627 _In_
628 WDFWMIINSTANCE WmiInstance,
632 PVOID EventData
633 )
634{
635 return ((PFN_WDFWMIINSTANCEFIREEVENT) WdfFunctions[WdfWmiInstanceFireEventTableIndex])(WdfDriverGlobals, WmiInstance, EventDataSize, EventData);
636}
637
638
639
640#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
641
642
643
645
646#endif // _WDFWMI_H_
647
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
#define NTSTATUS
Definition: precomp.h:21
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
DriverGlobals
#define _Function_class_(x)
Definition: ms_sal.h:2946
#define _Out_opt_
Definition: ms_sal.h:346
#define _Out_writes_bytes_(size)
Definition: ms_sal.h:350
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
#define CONST
Definition: pedump.c:81
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4071
#define STATUS_SUCCESS
Definition: shellext.h:65
#define STATUS_BUFFER_TOO_SMALL
Definition: shellext.h:69
WDFWMIPROVIDER Provider
Definition: wdfwmi.h:226
PWDF_WMI_PROVIDER_CONFIG ProviderConfig
Definition: wdfwmi.h:233
PFN_WDF_WMI_INSTANCE_SET_ITEM EvtWmiInstanceSetItem
Definition: wdfwmi.h:261
BOOLEAN UseContextForQuery
Definition: wdfwmi.h:241
PFN_WDF_WMI_INSTANCE_QUERY_INSTANCE EvtWmiInstanceQueryInstance
Definition: wdfwmi.h:251
PFN_WDF_WMI_INSTANCE_EXECUTE_METHOD EvtWmiInstanceExecuteMethod
Definition: wdfwmi.h:266
PFN_WDF_WMI_INSTANCE_SET_INSTANCE EvtWmiInstanceSetInstance
Definition: wdfwmi.h:256
PFN_WDF_WMI_PROVIDER_FUNCTION_CONTROL EvtWmiProviderFunctionControl
Definition: wdfwmi.h:199
uint32_t * PULONG
Definition: typedefs.h:59
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
#define STDCALL
Definition: wdf.h:45
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476
#define WDF_PTR_ADD_OFFSET(_ptr, _offset)
Definition: wdfcore.h:144
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4439
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfWmiProviderGetDeviceTableIndex
Definition: wdffuncenum.h:395
@ WdfWmiInstanceGetDeviceTableIndex
Definition: wdffuncenum.h:401
@ WdfWmiProviderIsEnabledTableIndex
Definition: wdffuncenum.h:396
@ WdfWmiInstanceDeregisterTableIndex
Definition: wdffuncenum.h:400
@ WdfWmiInstanceRegisterTableIndex
Definition: wdffuncenum.h:399
@ WdfWmiInstanceGetProviderTableIndex
Definition: wdffuncenum.h:402
@ WdfWmiInstanceFireEventTableIndex
Definition: wdffuncenum.h:403
@ WdfWmiProviderGetTracingHandleTableIndex
Definition: wdffuncenum.h:397
@ WdfWmiInstanceCreateTableIndex
Definition: wdffuncenum.h:398
@ WdfWmiProviderCreateTableIndex
Definition: wdffuncenum.h:394
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:762
#define WDFAPI
Definition: wdftypes.h:53
#define FORCEINLINE
Definition: wdftypes.h:67
FORCEINLINE VOID WDF_WMI_PROVIDER_CONFIG_INIT(_Out_ PWDF_WMI_PROVIDER_CONFIG Config, _In_ CONST GUID *Guid)
Definition: wdfwmi.h:205
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFWMIPROVIDERCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdfwmi.h:349
_In_ ULONG OutBufferSize
Definition: wdfwmi.h:87
EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD * PFN_WDF_WMI_INSTANCE_EXECUTE_METHOD
Definition: wdfwmi.h:154
_In_ ULONG _Out_ PULONG BufferUsed
Definition: wdfwmi.h:92
#define WDF_EXTERN_C_END
Definition: wdfwmi.h:40
_In_ WDF_WMI_PROVIDER_CONTROL Control
Definition: wdfwmi.h:166
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfwmi.h:356
_In_ ULONG _Out_writes_bytes_to_(OutBufferSize, *BufferUsed) PVOID OutBuffer
Definition: wdfwmi.h:88
EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE * PFN_WDF_WMI_INSTANCE_QUERY_INSTANCE
Definition: wdfwmi.h:94
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES InstanceAttributes
Definition: wdfwmi.h:478
_WDF_WMI_PROVIDER_CONTROL
Definition: wdfwmi.h:50
@ WdfWmiControlInvalid
Definition: wdfwmi.h:51
@ WdfWmiEventControl
Definition: wdfwmi.h:52
@ WdfWmiInstanceControl
Definition: wdfwmi.h:53
struct _WDF_WMI_INSTANCE_CONFIG * PWDF_WMI_INSTANCE_CONFIG
FORCEINLINE VOID WDF_WMI_INSTANCE_CONFIG_INIT_PROVIDER_CONFIG(_Out_ PWDF_WMI_INSTANCE_CONFIG Config, _In_ PWDF_WMI_PROVIDER_CONFIG ProviderConfig)
Definition: wdfwmi.h:286
EVT_WDF_WMI_INSTANCE_SET_INSTANCE * PFN_WDF_WMI_INSTANCE_SET_INSTANCE
Definition: wdfwmi.h:111
_WDF_WMI_PROVIDER_FLAGS
Definition: wdfwmi.h:68
@ WdfWmiProviderValidFlags
Definition: wdfwmi.h:72
@ WdfWmiProviderExpensive
Definition: wdfwmi.h:70
@ WdfWmiProviderTracing
Definition: wdfwmi.h:71
@ WdfWmiProviderEventOnly
Definition: wdfwmi.h:69
FORCEINLINE NTSTATUS WDF_WMI_BUFFER_APPEND_STRING(_Out_writes_bytes_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength, _In_ PCUNICODE_STRING String, _Out_ PULONG RequiredSize)
Definition: wdfwmi.h:299
FORCEINLINE VOID WDF_WMI_INSTANCE_CONFIG_INIT_PROVIDER(_Out_ PWDF_WMI_INSTANCE_CONFIG Config, _In_ WDFWMIPROVIDER Provider)
Definition: wdfwmi.h:273
#define WDF_EXTERN_C_START
Definition: wdfwmi.h:39
_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG _In_reads_bytes_opt_(EventDataSize) PVOID EventData)
Definition: wdfwmi.h:618
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Definition: wdfwmi.h:481
WDF_EXTERN_C_START enum _WDF_WMI_PROVIDER_CONTROL WDF_WMI_PROVIDER_CONTROL
_Must_inspect_result_ _In_ WDFWMIINSTANCE WmiInstance
Definition: wdfwmi.h:514
struct _WDF_WMI_PROVIDER_CONFIG WDF_WMI_PROVIDER_CONFIG
_In_ ULONG InBufferSize
Definition: wdfwmi.h:106
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG InstanceConfig
Definition: wdfwmi.h:476
_In_ ULONG MethodId
Definition: wdfwmi.h:142
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig
Definition: wdfwmi.h:358
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWMIPROVIDER * WmiProvider
Definition: wdfwmi.h:363
_In_ ULONG _In_ ULONG _In_ ULONG _Inout_updates_bytes_(OutBufferSize)) PVOID Buffer
Definition: wdfwmi.h:148
struct _WDF_WMI_PROVIDER_CONFIG * PWDF_WMI_PROVIDER_CONFIG
enum _WDF_WMI_PROVIDER_FLAGS WDF_WMI_PROVIDER_FLAGS
EVT_WDF_WMI_INSTANCE_SET_ITEM * PFN_WDF_WMI_INSTANCE_SET_ITEM
Definition: wdfwmi.h:130
struct _WDF_WMI_INSTANCE_CONFIG WDF_WMI_INSTANCE_CONFIG
_In_ ULONG DataItemId
Definition: wdfwmi.h:123
_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG EventDataSize
Definition: wdfwmi.h:617
EVT_WDF_WMI_PROVIDER_FUNCTION_CONTROL * PFN_WDF_WMI_PROVIDER_FUNCTION_CONTROL
Definition: wdfwmi.h:171
_In_ WDFWMIPROVIDER _In_ WDF_WMI_PROVIDER_CONTROL ProviderControl
Definition: wdfwmi.h:422
_In_ ULONG _In_reads_bytes_(InBufferSize) PVOID InBuffer)
Definition: wdfwmi.h:107
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ProviderAttributes
Definition: wdfwmi.h:360
_In_ ULONG _In_ ULONG _In_ ULONG _When_(InBufferSize >=OutBufferSize, _Inout_updates_bytes_(InBufferSize)) _When_(InBufferSize< OutBufferSize
Definition: wdfwmi.h:147