ReactOS 0.4.15-dev-8131-g4988de4
fxqueryinterfaceum.cpp
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 FxQueryInterfaceUm.cpp
8
9Abstract:
10
11 This module implements the device interface object.
12
13Author:
14
15
16
17
18Environment:
19
20 User mode only
21
22Revision History:
23
24--*/
25
26#include <fxmin.hpp>
27
28#pragma warning(push)
29#pragma warning(disable:4100) //unreferenced parameter
30
34 ) :
35 m_Device(Device),
36 m_Interface(NULL)
37{
39}
40
42{
44}
45
46VOID
49 __in const GUID* InterfaceGuid,
51 __in USHORT InterfaceSize,
52 __in USHORT InterfaceVersion,
54 )
55{
57}
58
62 __in PDEVICE_OBJECT TopOfStack,
63 __in const GUID* InterfaceType,
68 )
69/*++
70
71Routine Description:
72 Send an IRP_MJPNP/IRP_MN_QUERY_INTERFACE irp to a device object and its
73 attached stack.
74
75Arguments:
76 TargetDevice - device to send the query to.
77
78 InterfaceType - The type of interface to query for
79
80 Interface - The interface to fill out
81
82 Size - Size of Interface in bytes
83
84 Version - Version of the interface to be queried
85
86 InterfaceSpecificData - Addtional interface data to be queried
87
88
89Return Value:
90 NTSTATUS as indicated by the handler of the QI with in the device stack,
91 STATUS_NOT_SUPPORTED if the QI is not handled.
92
93 --*/
94{
96
98}
99
100VOID
104 )
105/*++
106
107Routine Description:
108 Marks the structure as embedded and sets the configuration. This is used
109 for FxQueryInterface structs which are embedded in other structures because
110 at contruction time the Config is not available yet.
111
112 By marking as embedded, FxPkgPnp will not free the structure when it deletes
113 the query interface chain.
114
115Arguments:
116 Config - how the interface behaves
117
118 Interface - the interface that is exported
119
120Return Value:
121 None
122
123 --*/
124{
126}
127
128#pragma warning(pop)
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
#define __in
Definition: dbghelp.h:35
#define __in_opt
Definition: dbghelp.h:38
#define __out
Definition: dbghelp.h:62
#define NULL
Definition: types.h:112
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:239
unsigned short USHORT
Definition: pedump.c:61
VOID SetEmbedded(__in PWDF_QUERY_INTERFACE_CONFIG Config, __in PINTERFACE Interface)
static _Must_inspect_result_ NTSTATUS _QueryForInterface(__in PDEVICE_OBJECT TopOfStack, __in const GUID *InterfaceType, __out PINTERFACE Interface, __in USHORT Size, __in USHORT Version, __in_opt PVOID InterfaceSpecificData)
FxQueryInterface(__in CfxDevice *Device, __in PWDF_QUERY_INTERFACE_CONFIG Config)
static VOID _FormatIrp(__in PIRP Irp, __in const GUID *InterfaceGuid, __out PINTERFACE Interface, __in USHORT InterfaceSize, __in USHORT InterfaceVersion, __in_opt PVOID InterfaceSpecificData=NULL)
VOID UfxVerifierTrapNotImpl()
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
Definition: wdffdo.h:472
static const GUID InterfaceGuid
Definition: wlanapi.c:25