ReactOS 0.4.16-dev-1946-g52006dd
wdfldr.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS WdfLdr driver
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: WdfLdr driver - exported functions
5 * COPYRIGHT: Copyright 2021 Max Korostil (mrmks04@yandex.ru)
6 */
7
8#ifndef __WDFLDR_H__
9#define __WDFLDR_H__
10
11#include <ntddk.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
20
25
26typedef
31
32typedef
35
36typedef
39
40typedef
43 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
45
46typedef
49 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo,
51
52typedef
57 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo);
58
59typedef
65 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo);
66
67typedef
72 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo);
73
74typedef
80 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo);
81
82
83typedef struct _WDF_INTERFACE_HEADER {
87
88
89typedef struct _WDF_CLASS_VERSION {
94
95typedef struct _WDF_CLASS_BIND_INFO {
106
115
117NTAPI
119 _In_ PWDF_CLASS_LIBRARY_INFO ClassLibInfo,
122
124NTAPI
128
130NTAPI
132 _In_ PWDF_LIBRARY_INFO LibraryInfo,
134 _In_ PCUNICODE_STRING LibraryDeviceName);
135
136VOID
137NTAPI
139
141NTAPI
144
145
147NTAPI
152 _Out_ PWDF_COMPONENT_GLOBALS *ComponentGlobals);
153
154
156NTAPI
160 _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals);
161
162
164NTAPI
168 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo);
169
170
171VOID
172NTAPI
176 _In_ PWDF_CLASS_BIND_INFO ClassBindInfo);
177
179NTAPI
181 _In_ PWDF_INTERFACE_HEADER LoaderInterface);
182
183#ifdef __cplusplus
184}
185#endif
186
187#endif //__WDFLDR_H__
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define NTSTATUS
Definition: precomp.h:19
ULONG NTAPI DllUnload()
Definition: dll.cpp:28
_In_ PCUNICODE_STRING ServicePath
Definition: library.c:55
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
Definition: rtlfuncs.h:1957
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
PFN_CLIENT_UNBIND_CLASS ClientUnbindClass
Definition: wdfldr.h:103
PWCHAR ClassName
Definition: wdfldr.h:97
WDF_CLASS_VERSION Version
Definition: wdfldr.h:98
ULONG FunctionTableCount
Definition: wdfldr.h:100
PFN_CLIENT_BIND_CLASS ClientBindClass
Definition: wdfldr.h:102
VOID(NTAPI **FunctionTable)(VOID)
PFN_CLASS_LIBRARY_UNBIND_CLIENT ClassLibraryUnbindClient
Definition: wdfldr.h:113
PFN_CLASS_LIBRARY_DEINIT ClassLibraryDeinitialize
Definition: wdfldr.h:111
PFN_CLASS_LIBRARY_INIT ClassLibraryInitialize
Definition: wdfldr.h:110
PFN_CLASS_LIBRARY_BIND_CLIENT ClassLibraryBindClient
Definition: wdfldr.h:112
WDF_CLASS_VERSION Version
Definition: wdfldr.h:109
const GUID * InterfaceType
Definition: wdfldr.h:84
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
WDF_BIND_INFO BindInfo
struct _WDF_CLASS_LIBRARY_INFO WDF_CLASS_LIBRARY_INFO
struct _WDF_INTERFACE_HEADER * PWDF_INTERFACE_HEADER
struct _WDF_LIBRARY_INFO * PWDF_LIBRARY_INFO
Definition: wdfldr.h:23
struct _WDF_CLASS_LIBRARY_INFO * PWDF_CLASS_LIBRARY_INFO
NTSTATUS NTAPI WdfRegisterClassLibrary(_In_ PWDF_CLASS_LIBRARY_INFO ClassLibInfo, _In_ PUNICODE_STRING SourceString, _In_ PUNICODE_STRING ObjectName)
Register class extension library (e.g., UCX)
Definition: wdfldr.c:696
NTSTATUS(NTAPI * PFN_CLASS_LIBRARY_BIND_CLIENT)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _Out_ PWDF_COMPONENT_GLOBALS *Globals)
Definition: wdfldr.h:42
ULONG WDF_MINOR_VERSION
Definition: wdfldr.h:18
VOID(NTAPI * PFN_CLASS_LIBRARY_DEINIT)(VOID)
Definition: wdfldr.h:38
VOID NTAPI WdfVersionUnbindClass(_In_ PWDF_BIND_INFO BindInfo, _In_ PWDF_COMPONENT_GLOBALS Globals, _In_ PWDF_CLASS_BIND_INFO ClassBindInfo)
Definition: wdfldr.c:850
NTSTATUS NTAPI DllInitialize(_In_ PUNICODE_STRING RegistryPath)
Definition: wdfldr.c:105
struct _WDF_INTERFACE_HEADER WDF_INTERFACE_HEADER
NTSTATUS NTAPI WdfVersionBindClass(_In_ PWDF_BIND_INFO BindInfo, _Inout_ PWDF_COMPONENT_GLOBALS *Globals, _In_ PWDF_CLASS_BIND_INFO ClassBindInfo)
Definition: wdfldr.c:794
NTSTATUS NTAPI WdfRegisterLibrary(_In_ PWDF_LIBRARY_INFO LibraryInfo, _In_ PUNICODE_STRING ServicePath, _In_ PCUNICODE_STRING LibraryDeviceName)
Register wdf01000 library.
Definition: wdfldr.c:311
struct _WDF_CLASS_BIND_INFO WDF_CLASS_BIND_INFO
PVOID * PWDF_COMPONENT_GLOBALS
Definition: wdfldr.h:24
struct _WDF_CLASS_BIND_INFO * PWDF_CLASS_BIND_INFO
Definition: wdfldr.h:22
struct _WDF_CLASS_VERSION WDF_CLASS_VERSION
ULONG WDF_MAJOR_VERSION
Definition: wdfldr.h:17
NTSTATUS NTAPI WdfVersionBind(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath, _Inout_ PWDF_BIND_INFO BindInfo, _Out_ PWDF_COMPONENT_GLOBALS *ComponentGlobals)
Bind client driver with framework.
Definition: wdfldr.c:411
VOID(NTAPI * PFN_WDF_VERSION_UNBIND_CLASS)(_In_ PWDF_BIND_INFO BindInfo, _In_ PWDF_COMPONENT_GLOBALS Globals, _In_ PWDF_CLASS_BIND_INFO ClassBindInfo)
Definition: wdfldr.h:69
struct _WDF_BIND_INFO * PWDF_BIND_INFO
Definition: wdfldr.h:21
NTSTATUS(NTAPI * PFN_WDF_VERSION_BIND_CLASS)(_In_ PWDF_BIND_INFO BindInfo, _In_ PWDF_COMPONENT_GLOBALS Globals, _In_ PWDF_CLASS_BIND_INFO ClassBindInfo)
Definition: wdfldr.h:54
VOID(NTAPI * PFN_CLIENT_UNBIND_CLASS)(_In_ PFN_WDF_VERSION_UNBIND_CLASS UnbindFunction, _In_ PWDF_BIND_INFO BindInfo, _In_ PWDF_COMPONENT_GLOBALS Globals, _In_ PWDF_CLASS_BIND_INFO ClassBindInfo)
Definition: wdfldr.h:76
NTSTATUS(NTAPI * PFN_CLASS_LIBRARY_INIT)(VOID)
Definition: wdfldr.h:34
PVOID WDF_COMPONENT_GLOBALS
Definition: wdfldr.h:24
struct _WDF_CLASS_VERSION * PWDF_CLASS_VERSION
NTSTATUS NTAPI WdfVersionUnbind(_In_ PUNICODE_STRING RegistryPath, _In_ PWDF_BIND_INFO BindInfo, _In_ PWDF_COMPONENT_GLOBALS ComponentGlobals)
Unbind client driver from framework.
Definition: wdfldr.c:519
NTSTATUS NTAPI WdfLdrQueryInterface(_In_ PWDF_INTERFACE_HEADER LoaderInterface)
Definition: wdfldr.c:222
NTSTATUS(NTAPI * PWDF_LDR_DIAGNOSTICS_VALUE_BY_NAME_AS_ULONG)(_In_ PUNICODE_STRING ValueName, _Out_ PULONG Value)
Definition: wdfldr.h:28
NTSTATUS(NTAPI * PFN_CLIENT_BIND_CLASS)(_In_ PFN_WDF_VERSION_BIND_CLASS BindFunction, _In_ PWDF_BIND_INFO BindInfo, _In_ PWDF_COMPONENT_GLOBALS Globals, _In_ PWDF_CLASS_BIND_INFO ClassBindInfo)
Definition: wdfldr.h:61
ULONG WDF_BUILD_NUMBER
Definition: wdfldr.h:19
VOID(NTAPI * PFN_CLASS_LIBRARY_UNBIND_CLIENT)(_In_ PWDF_CLASS_BIND_INFO ClassBindInfo, _In_ PWDF_COMPONENT_GLOBALS *Globals)
Definition: wdfldr.h:48
NTSTATUS NTAPI WdfLdrDiagnosticsValueByNameAsULONG(_In_ PUNICODE_STRING ValueName, _Out_ PULONG Value)
Retrieves an ULONG value from KMDF diagnostics registry key.
Definition: wdfldr.c:54
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
static WLX_DISPATCH_VERSION_1_4 FunctionTable
Definition: wlx.c:747
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:64