blob: 2266df2660fdc4066ad307a2d1a8c58ca387f3ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
Fdo.h
Abstract:
FDO callbacks, functions, and types.
Environment:
Kernel-mode only.
--*/
#pragma once
EXTERN_C_START
typedef struct _FDO_CONTEXT
{
WDFDEVICE WdfDevice;
ACPI_CONTEXT AcpiCtx;
PPM_CONTEXT PpmCtx;
WDFWORKITEM ConnectorAndNotificationWorkItem;
} FDO_CONTEXT, *PFDO_CONTEXT;
WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(FDO_CONTEXT, Fdo_GetContext)
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSTATUS
Fdo_Create (
_Inout_ PWDFDEVICE_INIT DeviceInit
);
EXTERN_C_END
PFDO_CONTEXT
FORCEINLINE
Context_GetFdoContext (
_In_ PACPI_CONTEXT AcpiCtx
)
{
return CONTAINING_RECORD(AcpiCtx, FDO_CONTEXT, AcpiCtx);
}
PFDO_CONTEXT
FORCEINLINE
Context_GetFdoContext (
_In_ PPPM_CONTEXT PpmCtx
)
{
return CONTAINING_RECORD(PpmCtx, FDO_CONTEXT, PpmCtx);
}
template<typename ContextType>
WDFDEVICE
FORCEINLINE
Context_GetWdfDevice (
_In_ ContextType Ctx
)
{
return Context_GetFdoContext(Ctx)->WdfDevice;
}
|