forked from microsoft/Windows-driver-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathelamsample.h
174 lines (107 loc) · 3.23 KB
/
elamsample.h
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) Microsoft Corporation. All rights reserved
Module Name:
elamsample.h
Abstract:
Contains function prototypes and includes other neccessary header files.
Environment:
Kernel mode only.
--*/
//
// ------------------------------------------------------------------- Includes
//
#include <ntddk.h>
#include <wdf.h>
//
// -------------------------------------------------------- Function Prototypes
//
DRIVER_INITIALIZE
DriverEntry;
/*++
Routine Description:
This routine is called by the Operating System to initialize the driver.
It creates the device object, fills in the dispatch entry points and
completes the initialization.
Arguments:
DriverObject - Supplies a pointer to the object that represents this device
driver.
RegistryPath - Supplies a pointer to the Services key in the registry.
Return Value:
STATUS_SUCCESS if initialized successfully.
Error status if the driver could not be initialized.
--*/
EVT_WDF_DRIVER_UNLOAD
ElamSampleEvtDriverUnload;
/*++
Routine Description:
This routine is called by the I/O subsystem before unloading the driver.
It creates the device object, fills in the dispatch entry points and
completes the initialization.
Arguments:
Driver - Supplies a handle to a framework driver object.
Return Value:
None.
--*/
VOID
ElamSampleBootDriverCallback(
_In_opt_ PVOID CallbackContext,
_In_ BDCB_CALLBACK_TYPE Classification,
_Inout_ PBDCB_IMAGE_INFORMATION ImageInformation
);
/*++
Routine Description:
This routine is called by the Operating System when boot start drivers are
being initialized.
Arguments:
CallbackContext - Supplies the opaque context specified during callback
registration.
Classification - Supplies the type of the callback, including status update
or image initialized.
ImageInformation - Supplies a pointer to information about the next boot
driver that is about to be initialized.
Return Value:
None.
--*/
VOID
ElamSampleProcessStatusUpdate(
_In_ BDCB_STATUS_UPDATE_TYPE StatusType
);
/*++
Routine Description:
This routine processes the BdCbStatusUpdate callback type.
Arguments:
StatusType - Supplies the type of status that is being reported.
Return Value:
None.
--*/
VOID
ElamSampleProcessInitializeImage(
_Inout_ PBDCB_IMAGE_INFORMATION ImageInformation
);
/*++
Routine Description:
This routine processes the BdCbInitializeImage callback type.
Arguments:
ImageInformation - Supplies a pointer to information about the next boot
driver that is about to be initialized.
Return Value:
None.
--*/
VOID
ElamSamplePrintHex(
_In_reads_bytes_(DataSize) PVOID Data,
_In_ ULONG DataSize
);
/*++
Routine Description:
This routine prints out the supplied data in hexadecimal form.
Arguments:
Data - Supplies a pointer to the data to be printed.
DataSize - Supplies the length in bytes of the data to be printed.
Return Value:
None.
--*/