ReactOS  0.4.15-dev-3456-g4a17d4b
fxqueryinterfaceum.cpp
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) Microsoft Corporation
4 
5 Module Name:
6 
7  FxQueryInterfaceUm.cpp
8 
9 Abstract:
10 
11  This module implements the device interface object.
12 
13 Author:
14 
15 
16 
17 
18 Environment:
19 
20  User mode only
21 
22 Revision 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 
46 VOID
48  __in PIRP Irp,
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 
71 Routine Description:
72  Send an IRP_MJPNP/IRP_MN_QUERY_INTERFACE irp to a device object and its
73  attached stack.
74 
75 Arguments:
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 
89 Return 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 
100 VOID
104  )
105 /*++
106 
107 Routine 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 
115 Arguments:
116  Config - how the interface behaves
117 
118  Interface - the interface that is exported
119 
120 Return Value:
121  None
122 
123  --*/
124 {
126 }
127 
128 #pragma warning(pop)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
Definition: wdffdo.h:461
#define __in_opt
Definition: dbghelp.h:38
LONG NTSTATUS
Definition: precomp.h:26
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
VOID UfxVerifierTrapNotImpl()
return STATUS_NOT_IMPLEMENTED
_In_ PIRP Irp
Definition: csq.h:116
#define __out
Definition: dbghelp.h:62
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:361
VOID SetEmbedded(__in PWDF_QUERY_INTERFACE_CONFIG Config, __in PINTERFACE Interface)
static const GUID InterfaceGuid
Definition: wlanapi.c:25
#define _Must_inspect_result_
Definition: ms_sal.h:558
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
FxQueryInterface(__in CfxDevice *Device, __in PWDF_QUERY_INTERFACE_CONFIG Config)
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:361
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)
unsigned short USHORT
Definition: pedump.c:61
#define NULL
Definition: types.h:112
static VOID _FormatIrp(__in PIRP Irp, __in const GUID *InterfaceGuid, __out PINTERFACE Interface, __in USHORT InterfaceSize, __in USHORT InterfaceVersion, __in_opt PVOID InterfaceSpecificData=NULL)
#define __in
Definition: dbghelp.h:35
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:461