ReactOS  0.4.15-dev-2329-g3ad573f
wdfchildlist.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
 
struct  _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER
 
struct  _WDF_CHILD_RETRIEVE_INFO
 
struct  _WDF_CHILD_LIST_CONFIG
 
struct  _WDF_CHILD_LIST_ITERATOR
 

Macros

#define WDF_EXTERN_C
 
#define WDF_EXTERN_C_START
 
#define WDF_EXTERN_C_END
 

Typedefs

typedef WDF_EXTERN_C_START enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
 
typedef WDF_EXTERN_C_START enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUSPWDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
 
typedef enum _WDF_RETRIEVE_CHILD_FLAGS WDF_RETRIEVE_CHILD_FLAGS
 
typedef struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
 
typedef struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADERPWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
 
typedef struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER WDF_CHILD_ADDRESS_DESCRIPTION_HEADER
 
typedef struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADERPWDF_CHILD_ADDRESS_DESCRIPTION_HEADER
 
typedef _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
 
typedef _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDFDEVICE_INIT ChildInit
 
typedef EVT_WDF_CHILD_LIST_CREATE_DEVICE * PFN_WDF_CHILD_LIST_CREATE_DEVICE
 
typedef EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN * PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN
 
typedef _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SourceIdentificationDescription
 
typedef _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription
 
typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY
 
typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE
 
typedef _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER FirstIdentificationDescription
 
typedef _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SecondIdentificationDescription
 
typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE
 
typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP
 
typedef _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER SourceAddressDescription
 
typedef _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER DestinationAddressDescription
 
typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY
 
typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE
 
typedef _Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
 
typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP
 
typedef _In_ WDFDEVICE OldDevice
 
typedef _In_ WDFDEVICE _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER OldAddressDescription
 
typedef _In_ WDFDEVICE _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER NewAddressDescription
 
typedef EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED * PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED
 
typedef struct _WDF_CHILD_RETRIEVE_INFO WDF_CHILD_RETRIEVE_INFO
 
typedef struct _WDF_CHILD_RETRIEVE_INFOPWDF_CHILD_RETRIEVE_INFO
 
typedef struct _WDF_CHILD_LIST_CONFIG WDF_CHILD_LIST_CONFIG
 
typedef struct _WDF_CHILD_LIST_CONFIGPWDF_CHILD_LIST_CONFIG
 
typedef struct _WDF_CHILD_LIST_ITERATOR WDF_CHILD_LIST_ITERATOR
 
typedef struct _WDF_CHILD_LIST_ITERATORPWDF_CHILD_LIST_ITERATOR
 
typedef _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFCHILDLISTCREATE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals == 0
 
typedef _Must_inspect_result_ _In_ WDFDEVICE Device
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ChildListAttributes
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
 
typedef _Must_inspect_result_ _In_ WDFCHILDLIST _Inout_ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
 
typedef _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
 
typedef _Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
 

Enumerations

enum  _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS { WdfChildListRetrieveDeviceUndefined = 0, WdfChildListRetrieveDeviceSuccess, WdfChildListRetrieveDeviceNotYetCreated, WdfChildListRetrieveDeviceNoSuchDevice }
 
enum  _WDF_RETRIEVE_CHILD_FLAGS {
  WdfRetrieveUnspecified = 0x0000, WdfRetrievePresentChildren = 0x0001, WdfRetrieveMissingChildren = 0x0002, WdfRetrievePendingChildren = 0x0004,
  WdfRetrieveAddedChildren = (WdfRetrievePresentChildren | WdfRetrievePendingChildren), WdfRetrieveAllChildren = (WdfRetrievePresentChildren | WdfRetrievePendingChildren | WdfRetrieveMissingChildren)
}
 

Functions

FORCEINLINE VOID WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT (_Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER Header, _In_ ULONG IdentificationDescriptionSize)
 
FORCEINLINE VOID WDF_CHILD_ADDRESS_DESCRIPTION_HEADER_INIT (_Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER Header, _In_ ULONG AddressDescriptionSize)
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_CREATE_DEVICE) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_CHILD_LIST_CREATE_DEVICE(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) VOID STDCALL EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN(_In_ WDFCHILDLIST ChildList)
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS STDCALL EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN STDCALL EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS STDCALL EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID STDCALL EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP(_In_ WDFCHILDLIST ChildList
 
typedef _Function_class_ (EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN STDCALL EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED(_In_ WDFCHILDLIST ChildList
 
FORCEINLINE VOID WDF_CHILD_RETRIEVE_INFO_INIT (_Out_ PWDF_CHILD_RETRIEVE_INFO Info, _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription)
 
FORCEINLINE VOID WDF_CHILD_LIST_CONFIG_INIT (_Out_ PWDF_CHILD_LIST_CONFIG Config, _In_ ULONG IdentificationDescriptionSize, _In_ PFN_WDF_CHILD_LIST_CREATE_DEVICE EvtChildListCreateDevice)
 
FORCEINLINE VOID WDF_CHILD_LIST_ITERATOR_INIT (_Out_ PWDF_CHILD_LIST_ITERATOR Iterator, _In_ ULONG Flags)
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) FORCEINLINE NTSTATUS WdfChildListCreate(_In_ WDFDEVICE Device
 
typedef _IRQL_requires_max_ (DISPATCH_LEVEL) WDFAPI WDFDEVICE(STDCALL *PFN_WDFCHILDLISTGETDEVICE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 

Macro Definition Documentation

◆ WDF_EXTERN_C

#define WDF_EXTERN_C

Definition at line 40 of file wdfchildlist.h.

◆ WDF_EXTERN_C_END

#define WDF_EXTERN_C_END

Definition at line 42 of file wdfchildlist.h.

◆ WDF_EXTERN_C_START

#define WDF_EXTERN_C_START

Definition at line 41 of file wdfchildlist.h.

Typedef Documentation

◆ _IRQL_requires_max_

_IRQL_requires_max_ == 0

Definition at line 467 of file wdfchildlist.h.

◆ AddressDescription

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
_Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
Definition: wdfchildlist.h:255
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:124
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474

Definition at line 255 of file wdfchildlist.h.

◆ ChildInit

◆ ChildList

_In_ WDFCHILDLIST ChildList
Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ChildListAttributes
Definition: wdfchildlist.h:474

Definition at line 474 of file wdfchildlist.h.

◆ ChildListAttributes

◆ Config

Initial value:
{
return ((PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER) WdfFunctions[WdfUsbTargetPipeConfigContinuousReaderTableIndex])(WdfDriverGlobals, Pipe, Config)
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFUSBPIPE Pipe
Definition: wdfusb.h:1741
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474

Definition at line 474 of file wdfchildlist.h.

◆ DestinationAddressDescription

◆ DestinationIdentificationDescription

◆ Device

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _Inout_ PWDFDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES DeviceAttributes
Definition: wdfdevice.h:3561
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfcontrol.h:113

Definition at line 474 of file wdfchildlist.h.

◆ FirstIdentificationDescription

◆ IdentificationDescription

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:124
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474

Definition at line 124 of file wdfchildlist.h.

◆ Info

* Info
Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
Definition: wdfchildlist.h:653
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474

Definition at line 683 of file wdfchildlist.h.

◆ Iterator

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
Definition: wdfchildlist.h:653
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474

Definition at line 653 of file wdfchildlist.h.

◆ NewAddressDescription

◆ OldAddressDescription

◆ OldDevice

typedef _In_ WDFDEVICE OldDevice

Definition at line 269 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP

typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP* PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP

Definition at line 257 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY

typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY* PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY

Definition at line 225 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE

typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE* PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE

Definition at line 242 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_CREATE_DEVICE

typedef EVT_WDF_CHILD_LIST_CREATE_DEVICE* PFN_WDF_CHILD_LIST_CREATE_DEVICE

Definition at line 129 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED

typedef EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED* PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED

Definition at line 276 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP

typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP* PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP

Definition at line 208 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE

typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE* PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE

Definition at line 193 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY

typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY* PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY

Definition at line 159 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE

typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE* PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE

Definition at line 176 of file wdfchildlist.h.

◆ PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN

typedef EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN* PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN

Definition at line 142 of file wdfchildlist.h.

◆ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER

◆ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER

◆ PWDF_CHILD_LIST_CONFIG

◆ PWDF_CHILD_LIST_ITERATOR

◆ PWDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS

◆ PWDF_CHILD_RETRIEVE_INFO

◆ RetrieveInfo

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFCHILDLIST _Inout_ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
Definition: wdfchildlist.h:538
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474

Definition at line 538 of file wdfchildlist.h.

◆ SecondIdentificationDescription

◆ SourceAddressDescription

◆ SourceIdentificationDescription

◆ WDF_CHILD_ADDRESS_DESCRIPTION_HEADER

◆ WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER

◆ WDF_CHILD_LIST_CONFIG

◆ WDF_CHILD_LIST_ITERATOR

◆ WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS

◆ WDF_CHILD_RETRIEVE_INFO

◆ WDF_RETRIEVE_CHILD_FLAGS

Enumeration Type Documentation

◆ _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS

Enumerator
WdfChildListRetrieveDeviceUndefined 
WdfChildListRetrieveDeviceSuccess 
WdfChildListRetrieveDeviceNotYetCreated 
WdfChildListRetrieveDeviceNoSuchDevice 

Definition at line 52 of file wdfchildlist.h.

◆ _WDF_RETRIEVE_CHILD_FLAGS

Enumerator
WdfRetrieveUnspecified 
WdfRetrievePresentChildren 
WdfRetrieveMissingChildren 
WdfRetrievePendingChildren 
WdfRetrieveAddedChildren 
WdfRetrieveAllChildren 

Definition at line 59 of file wdfchildlist.h.

Function Documentation

◆ _Function_class_() [1/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_CREATE_DEVICE  )

◆ _Function_class_() [2/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN  )

◆ _Function_class_() [3/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY  )

◆ _Function_class_() [4/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE  )

◆ _Function_class_() [5/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE  )

◆ _Function_class_() [6/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP  )

◆ _Function_class_() [7/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY  )

◆ _Function_class_() [8/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE  )

◆ _Function_class_() [9/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP  )

◆ _Function_class_() [10/10]

typedef _Function_class_ ( EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED  )

◆ _IRQL_requires_max_() [1/2]

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2932
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _IRQL_requires_max_() [2/2]

typedef _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 515 of file wdfchildlist.h.

522 {
523  return ((PFN_WDFCHILDLISTGETDEVICE) WdfFunctions[WdfChildListGetDeviceTableIndex])(WdfDriverGlobals, ChildList);
524 }
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474

◆ WDF_CHILD_ADDRESS_DESCRIPTION_HEADER_INIT()

FORCEINLINE VOID WDF_CHILD_ADDRESS_DESCRIPTION_HEADER_INIT ( _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER  Header,
_In_ ULONG  AddressDescriptionSize 
)

Definition at line 105 of file wdfchildlist.h.

109 {
110  RtlZeroMemory(Header, AddressDescriptionSize);
111  Header->AddressDescriptionSize = AddressDescriptionSize;
112 }
Definition: Header.h:8
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

◆ WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT()

FORCEINLINE VOID WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT ( _Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER  Header,
_In_ ULONG  IdentificationDescriptionSize 
)

Definition at line 83 of file wdfchildlist.h.

87 {
89  Header->IdentificationDescriptionSize = IdentificationDescriptionSize;
90 }
Definition: Header.h:8
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
description Header IdentificationDescriptionSize

◆ WDF_CHILD_LIST_CONFIG_INIT()

FORCEINLINE VOID WDF_CHILD_LIST_CONFIG_INIT ( _Out_ PWDF_CHILD_LIST_CONFIG  Config,
_In_ ULONG  IdentificationDescriptionSize,
_In_ PFN_WDF_CHILD_LIST_CREATE_DEVICE  EvtChildListCreateDevice 
)

Definition at line 415 of file wdfchildlist.h.

420 {
422 
423  Config->Size = sizeof(WDF_CHILD_LIST_CONFIG);
424  Config->IdentificationDescriptionSize = IdentificationDescriptionSize;
425  Config->EvtChildListCreateDevice = EvtChildListCreateDevice;
426 }
struct _WDF_CHILD_LIST_CONFIG WDF_CHILD_LIST_CONFIG
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
description Header IdentificationDescriptionSize

Referenced by FxPkgFdo::Initialize().

◆ WDF_CHILD_LIST_ITERATOR_INIT()

FORCEINLINE VOID WDF_CHILD_LIST_ITERATOR_INIT ( _Out_ PWDF_CHILD_LIST_ITERATOR  Iterator,
_In_ ULONG  Flags 
)

Definition at line 450 of file wdfchildlist.h.

454 {
456 
457  Iterator->Size = sizeof(WDF_CHILD_LIST_ITERATOR);
458  Iterator->Flags = Flags;
459 }
struct _WDF_CHILD_LIST_ITERATOR WDF_CHILD_LIST_ITERATOR
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
Definition: wdfchildlist.h:653
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

◆ WDF_CHILD_RETRIEVE_INFO_INIT()

FORCEINLINE VOID WDF_CHILD_RETRIEVE_INFO_INIT ( _Out_ PWDF_CHILD_RETRIEVE_INFO  Info,
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER  IdentificationDescription 
)

Definition at line 309 of file wdfchildlist.h.

313 {
315 
316  Info->Size = sizeof(WDF_CHILD_RETRIEVE_INFO);
317  Info->IdentificationDescription = IdentificationDescription;
318 }
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:124
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
struct _WDF_CHILD_RETRIEVE_INFO WDF_CHILD_RETRIEVE_INFO