Implemented vfs_volume_info_get() for proper df(1) entry.
[reactos.git] / include / ddk / pnpfuncs.h
1 #ifndef __INCLUDE_DDK_PNPFUNCS_H
2 #define __INCLUDE_DDK_PNPFUNCS_H
3
4 #define IoInitializeRemoveLock(Lock, Tag, Maxmin, HighWater) \
5   IoInitializeRemoveLockEx(Lock, Tag, Maxmin, HighWater, sizeof(IO_REMOVE_LOCK))
6
7 VOID
8 STDCALL
9 IoInitializeRemoveLockEx(
10   IN PIO_REMOVE_LOCK Lock,
11   IN ULONG AllocateTag,
12   IN ULONG MaxLockedMinutes,
13   IN ULONG HighWatermark,
14   IN ULONG RemlockSize);
15
16 #define IoAcquireRemoveLock(RemoveLock, Tag) \
17   IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof(IO_REMOVE_LOCK))
18
19 NTSTATUS
20 STDCALL
21 IoAcquireRemoveLockEx(
22   IN PIO_REMOVE_LOCK RemoveLock,
23   IN OPTIONAL PVOID Tag,
24   IN LPCSTR File,
25   IN ULONG Line,
26   IN ULONG RemlockSize);
27
28 #define IoReleaseRemoveLock(RemoveLock, Tag) \
29   IoReleaseRemoveLockEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK))
30
31 VOID
32 STDCALL
33 IoReleaseRemoveLockEx(
34   IN PIO_REMOVE_LOCK RemoveLock,
35   IN PVOID Tag,
36   IN ULONG RemlockSize);
37
38 #define IoReleaseRemoveLockAndWait(RemoveLock, Tag) \
39   IoReleaseRemoveLockAndWaitEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK))
40
41 VOID
42 STDCALL
43 IoReleaseRemoveLockAndWaitEx(
44   IN PIO_REMOVE_LOCK RemoveLock,
45   IN PVOID Tag,
46   IN ULONG RemlockSize);
47
48 VOID
49 STDCALL
50 IoAdjustPagingPathCount(
51   IN PLONG Count,
52   IN BOOLEAN Increment);
53
54 NTSTATUS
55 STDCALL
56 IoGetDeviceInterfaceAlias(
57   IN PUNICODE_STRING SymbolicLinkName,
58   IN CONST GUID *AliasInterfaceClassGuid,
59   OUT PUNICODE_STRING AliasSymbolicLinkName);
60
61 NTSTATUS
62 STDCALL
63 IoGetDeviceInterfaces(
64   IN CONST GUID *InterfaceClassGuid,
65   IN PDEVICE_OBJECT PhysicalDeviceObject  OPTIONAL,
66   IN ULONG Flags,
67   OUT PWSTR *SymbolicLinkList);
68
69 NTSTATUS
70 STDCALL
71 IoGetDeviceProperty(
72   IN PDEVICE_OBJECT DeviceObject,
73   IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
74   IN ULONG BufferLength,
75   OUT PVOID PropertyBuffer,
76   OUT PULONG ResultLength);
77
78 VOID
79 STDCALL
80 IoInvalidateDeviceRelations(
81   IN PDEVICE_OBJECT DeviceObject,
82   IN DEVICE_RELATION_TYPE Type);
83
84 VOID
85 STDCALL
86 IoInvalidateDeviceState(
87   IN PDEVICE_OBJECT PhysicalDeviceObject);
88
89 NTSTATUS
90 STDCALL
91 IoOpenDeviceInterfaceRegistryKey(
92   IN PUNICODE_STRING SymbolicLinkName,
93   IN ACCESS_MASK DesiredAccess,
94   OUT PHANDLE DeviceInterfaceKey);
95
96 NTSTATUS
97 STDCALL
98 IoOpenDeviceRegistryKey(
99   IN PDEVICE_OBJECT DeviceObject,
100   IN ULONG DevInstKeyType,
101   IN ACCESS_MASK DesiredAccess,
102   OUT PHANDLE DevInstRegKey);
103
104 NTSTATUS
105 STDCALL
106 IoRegisterDeviceInterface(
107   IN PDEVICE_OBJECT PhysicalDeviceObject,
108   IN CONST GUID *InterfaceClassGuid,
109   IN PUNICODE_STRING ReferenceString  OPTIONAL,
110   OUT PUNICODE_STRING SymbolicLinkName);
111
112 NTSTATUS
113 STDCALL
114 IoRegisterPlugPlayNotification(
115   IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
116   IN ULONG EventCategoryFlags,
117   IN PVOID EventCategoryData  OPTIONAL,
118   IN PDRIVER_OBJECT DriverObject,
119   IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine,
120   IN PVOID Context,
121   OUT PVOID *NotificationEntry);
122
123 NTSTATUS
124 STDCALL
125 IoReportDetectedDevice(
126   IN PDRIVER_OBJECT DriverObject,
127   IN INTERFACE_TYPE LegacyBusType,
128   IN ULONG BusNumber,
129   IN ULONG SlotNumber,
130   IN PCM_RESOURCE_LIST ResourceList,
131   IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements  OPTIONAL,
132   IN BOOLEAN ResourceAssigned,
133   IN OUT PDEVICE_OBJECT *DeviceObject);
134
135 NTSTATUS
136 STDCALL
137 IoReportResourceForDetection(
138   IN PDRIVER_OBJECT DriverObject,
139   IN PCM_RESOURCE_LIST DriverList   OPTIONAL,
140   IN ULONG DriverListSize    OPTIONAL,
141   IN PDEVICE_OBJECT DeviceObject    OPTIONAL,
142   IN PCM_RESOURCE_LIST DeviceList   OPTIONAL,
143   IN ULONG DeviceListSize   OPTIONAL,
144   OUT PBOOLEAN ConflictDetected);
145
146 NTSTATUS
147 STDCALL
148 IoReportTargetDeviceChange(
149   IN PDEVICE_OBJECT PhysicalDeviceObject,
150   IN PVOID NotificationStructure);
151
152 NTSTATUS
153 STDCALL
154 IoReportTargetDeviceChangeAsynchronous(
155   IN PDEVICE_OBJECT PhysicalDeviceObject,
156   IN PVOID NotificationStructure,
157   IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback  OPTIONAL,
158   IN PVOID Context  OPTIONAL);
159
160 VOID
161 STDCALL
162 IoRequestDeviceEject(
163   IN PDEVICE_OBJECT PhysicalDeviceObject);
164
165 NTSTATUS
166 STDCALL
167 IoSetDeviceInterfaceState(
168   IN PUNICODE_STRING SymbolicLinkName,
169   IN BOOLEAN Enable);
170
171 NTSTATUS
172 STDCALL
173 IoUnregisterPlugPlayNotification(
174   IN PVOID NotificationEntry);
175
176 #endif /* __INCLUDE_DDK_PNPFUNCS_H */