Process Hacker
Main Page
Namespaces
Data Structures
Files
File List
Globals
ntpnpapi.h
Go to the documentation of this file.
1
#ifndef _NTPNPAPI_H
2
#define _NTPNPAPI_H
3
4
typedef
enum
_PLUGPLAY_EVENT_CATEGORY
5
{
6
HardwareProfileChangeEvent
,
7
TargetDeviceChangeEvent
,
8
DeviceClassChangeEvent
,
9
CustomDeviceEvent
,
10
DeviceInstallEvent
,
11
DeviceArrivalEvent
,
12
PowerEvent
,
13
VetoEvent
,
14
BlockedDriverEvent
,
15
InvalidIDEvent
,
16
MaxPlugEventCategory
17
}
PLUGPLAY_EVENT_CATEGORY
, *
PPLUGPLAY_EVENT_CATEGORY
;
18
19
typedef
struct
_PLUGPLAY_EVENT_BLOCK
20
{
21
GUID
EventGuid
;
22
PLUGPLAY_EVENT_CATEGORY
EventCategory
;
23
PULONG
Result
;
24
ULONG
Flags
;
25
ULONG
TotalSize
;
26
PVOID
DeviceObject
;
27
28
union
29
{
30
struct
31
{
32
GUID
ClassGuid
;
33
WCHAR
SymbolicLinkName
[1];
34
}
DeviceClass
;
35
struct
36
{
37
WCHAR
DeviceIds
[1];
38
}
TargetDevice
;
39
struct
40
{
41
WCHAR
DeviceId
[1];
42
}
InstallDevice
;
43
struct
44
{
45
PVOID
NotificationStructure
;
46
WCHAR
DeviceIds
[1];
47
}
CustomNotification
;
48
struct
49
{
50
PVOID
Notification
;
51
}
ProfileNotification
;
52
struct
53
{
54
ULONG
NotificationCode
;
55
ULONG
NotificationData
;
56
}
PowerNotification
;
57
struct
58
{
59
PNP_VETO_TYPE
VetoType
;
60
WCHAR
DeviceIdVetoNameBuffer
[1];
// DeviceId<null>VetoName<null><null>
61
}
VetoNotification
;
62
struct
63
{
64
GUID
BlockedDriverGuid
;
65
}
BlockedDriverNotification
;
66
struct
67
{
68
WCHAR
ParentId
[1];
69
}
InvalidIDNotification
;
70
}
u
;
71
}
PLUGPLAY_EVENT_BLOCK
, *
PPLUGPLAY_EVENT_BLOCK
;
72
73
typedef
enum
_PLUGPLAY_CONTROL_CLASS
74
{
75
PlugPlayControlEnumerateDevice
,
76
PlugPlayControlRegisterNewDevice
,
77
PlugPlayControlDeregisterDevice
,
78
PlugPlayControlInitializeDevice
,
79
PlugPlayControlStartDevice
,
80
PlugPlayControlUnlockDevice
,
81
PlugPlayControlQueryAndRemoveDevice
,
82
PlugPlayControlUserResponse
,
83
PlugPlayControlGenerateLegacyDevice
,
84
PlugPlayControlGetInterfaceDeviceList
,
85
PlugPlayControlProperty
,
86
PlugPlayControlDeviceClassAssociation
,
87
PlugPlayControlGetRelatedDevice
,
88
PlugPlayControlGetInterfaceDeviceAlias
,
89
PlugPlayControlDeviceStatus
,
90
PlugPlayControlGetDeviceDepth
,
91
PlugPlayControlQueryDeviceRelations
,
92
PlugPlayControlTargetDeviceRelation
,
93
PlugPlayControlQueryConflictList
,
94
PlugPlayControlRetrieveDock
,
95
PlugPlayControlResetDevice
,
96
PlugPlayControlHaltDevice
,
97
PlugPlayControlGetBlockedDriverList
,
98
MaxPlugPlayControl
99
}
PLUGPLAY_CONTROL_CLASS
, *
PPLUGPLAY_CONTROL_CLASS
;
100
101
#if (PHNT_VERSION < PHNT_WIN8)
102
NTSYSCALLAPI
103
NTSTATUS
104
NTAPI
105
NtGetPlugPlayEvent(
106
_In_ HANDLE EventHandle,
107
_In_opt_ PVOID Context,
108
_Out_writes_bytes_(EventBufferSize) PPLUGPLAY_EVENT_BLOCK EventBlock,
109
_In_ ULONG EventBufferSize
110
);
111
#endif
112
113
NTSYSCALLAPI
114
NTSTATUS
115
NTAPI
116
NtPlugPlayControl
(
117
_In_
PLUGPLAY_CONTROL_CLASS
PnPControlClass,
118
_Inout_updates_bytes_(PnPControlDataLength) PVOID PnPControlData,
119
_In_ ULONG PnPControlDataLength
120
);
121
122
#if (PHNT_VERSION >= PHNT_WIN7)
123
124
NTSYSCALLAPI
125
NTSTATUS
126
NTAPI
127
NtSerializeBoot
(
128
VOID
129
);
130
131
NTSYSCALLAPI
132
NTSTATUS
133
NTAPI
134
NtEnableLastKnownGood
(
135
VOID
136
);
137
138
NTSYSCALLAPI
139
NTSTATUS
140
NTAPI
141
NtDisableLastKnownGood
(
142
VOID
143
);
144
145
#endif
146
147
#if (PHNT_VERSION >= PHNT_VISTA)
148
NTSYSCALLAPI
149
NTSTATUS
150
NTAPI
151
NtReplacePartitionUnit
(
152
_In_
PUNICODE_STRING
TargetInstancePath,
153
_In_
PUNICODE_STRING
SpareInstancePath,
154
_In_ ULONG Flags
155
);
156
#endif
157
158
#endif
phlib
include
ntpnpapi.h
Generated by
1.8.2