3 Copyright (c) Alex Ionescu. All rights reserved.
11 Type definitions for the Object Manager
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
29 #ifndef NTOS_MODE_USER
38 IN PACCESS_STATE AccessState
,
39 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
49 IN KPROCESSOR_MODE AccessMode
56 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL
,
57 IN POBJECT_TYPE ObjectType
,
58 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
59 IN KPROCESSOR_MODE AccessMode
,
60 IN OUT PVOID ParseContext OPTIONAL
,
62 IN ULONG PagedPoolCharge OPTIONAL
,
63 IN ULONG NonPagedPoolCharge OPTIONAL
,
71 IN PUNICODE_STRING TypeName
,
72 IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer
,
74 OUT POBJECT_TYPE
*ObjectType
80 ObGetObjectPointerCount(
88 IN POBJECT_ATTRIBUTES ObjectAttributes
,
89 IN POBJECT_TYPE ObjectType
,
90 IN KPROCESSOR_MODE AccessMode
,
91 IN PACCESS_STATE PassedAccessState
,
92 IN ACCESS_MASK DesiredAccess
,
93 IN OUT PVOID ParseContext
,
100 ObReferenceObjectByName(
101 IN PUNICODE_STRING ObjectName
,
103 IN PACCESS_STATE PassedAccessState OPTIONAL
,
104 IN ACCESS_MASK DesiredAccess OPTIONAL
,
105 IN POBJECT_TYPE ObjectType
,
106 IN KPROCESSOR_MODE AccessMode
,
107 IN OUT PVOID ParseContext OPTIONAL
,
114 ObFindHandleForObject(
115 IN PEPROCESS Process
,
117 IN POBJECT_TYPE ObjectType
,
118 IN POBJECT_HANDLE_INFORMATION HandleInformation
,
124 ObDereferenceObjectDeferDelete(
143 NtCloseObjectAuditAlarm(
144 IN PUNICODE_STRING SubsystemName
,
146 IN BOOLEAN GenerateOnClose
152 NtCreateDirectoryObject(
153 OUT PHANDLE DirectoryHandle
,
154 IN ACCESS_MASK DesiredAccess
,
155 IN POBJECT_ATTRIBUTES ObjectAttributes
161 NtCreateSymbolicLinkObject(
162 OUT PHANDLE SymbolicLinkHandle
,
163 IN ACCESS_MASK DesiredAccess
,
164 IN POBJECT_ATTRIBUTES ObjectAttributes
,
165 IN PUNICODE_STRING Name
171 NtDeleteObjectAuditAlarm(
172 IN PUNICODE_STRING SubsystemName
,
174 IN BOOLEAN GenerateOnClose
181 IN HANDLE SourceProcessHandle
,
182 IN HANDLE SourceHandle
,
183 IN HANDLE TargetProcessHandle
,
184 OUT PHANDLE TargetHandle
,
185 IN ACCESS_MASK DesiredAccess
,
186 IN ULONG HandleAttributes
,
193 NtMakePermanentObject(
200 NtMakeTemporaryObject(
207 NtOpenDirectoryObject(
208 OUT PHANDLE FileHandle
,
209 IN ACCESS_MASK DesiredAccess
,
210 IN POBJECT_ATTRIBUTES ObjectAttributes
218 ACCESS_MASK DesiredAccess
,
219 POBJECT_ATTRIBUTES ObjectAttributes
225 NtOpenSymbolicLinkObject(
226 OUT PHANDLE SymbolicLinkHandle
,
227 IN ACCESS_MASK DesiredAccess
,
228 IN POBJECT_ATTRIBUTES ObjectAttributes
234 NtQueryDirectoryObject(
235 IN HANDLE DirectoryHandle
,
237 IN ULONG BufferLength
,
238 IN BOOLEAN ReturnSingleEntry
,
239 IN BOOLEAN RestartScan
,
240 IN OUT PULONG Context
,
241 OUT PULONG ReturnLength OPTIONAL
248 IN HANDLE ObjectHandle
,
249 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
250 OUT PVOID ObjectInformation
,
252 OUT PULONG ResultLength OPTIONAL
258 NtQuerySecurityObject(
260 IN SECURITY_INFORMATION SecurityInformation
,
261 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
263 OUT PULONG ResultLength
269 NtQuerySymbolicLinkObject(
270 IN HANDLE SymLinkObjHandle
,
271 OUT PUNICODE_STRING LinkTarget
,
272 OUT PULONG DataWritten OPTIONAL
278 NtSetInformationObject(
279 IN HANDLE ObjectHandle
,
280 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
281 IN PVOID ObjectInformation
,
290 IN SECURITY_INFORMATION SecurityInformation
,
291 IN PSECURITY_DESCRIPTOR SecurityDescriptor
297 NtSignalAndWaitForSingleObject(
298 IN HANDLE SignalObject
,
299 IN HANDLE WaitObject
,
300 IN BOOLEAN Alertable
,
301 IN PLARGE_INTEGER Time
307 NtWaitForMultipleObjects(
310 IN WAIT_TYPE WaitType
,
311 IN BOOLEAN Alertable
,
312 IN PLARGE_INTEGER Time
317 NtWaitForMultipleObjects32(
318 IN ULONG ObjectCount
,
320 IN WAIT_TYPE WaitType
,
321 IN BOOLEAN Alertable
,
322 IN PLARGE_INTEGER TimeOut OPTIONAL
328 NtWaitForSingleObject(
330 IN BOOLEAN Alertable
,
331 IN PLARGE_INTEGER Time
344 ZwCloseObjectAuditAlarm(
345 IN PUNICODE_STRING SubsystemName
,
347 IN BOOLEAN GenerateOnClose
353 ZwCreateDirectoryObject(
354 OUT PHANDLE DirectoryHandle
,
355 IN ACCESS_MASK DesiredAccess
,
356 IN POBJECT_ATTRIBUTES ObjectAttributes
362 ZwCreateSymbolicLinkObject(
363 OUT PHANDLE SymbolicLinkHandle
,
364 IN ACCESS_MASK DesiredAccess
,
365 IN POBJECT_ATTRIBUTES ObjectAttributes
,
366 IN PUNICODE_STRING Name
372 ZwDeleteObjectAuditAlarm(
373 IN PUNICODE_STRING SubsystemName
,
375 IN BOOLEAN GenerateOnClose
382 IN HANDLE SourceProcessHandle
,
383 IN HANDLE SourceHandle
,
384 IN HANDLE TargetProcessHandle
,
385 OUT PHANDLE TargetHandle
,
386 IN ACCESS_MASK DesiredAccess
,
387 IN ULONG HandleAttributes
,
394 ZwMakePermanentObject(
401 ZwMakeTemporaryObject(
408 ZwOpenDirectoryObject(
409 OUT PHANDLE FileHandle
,
410 IN ACCESS_MASK DesiredAccess
,
411 IN POBJECT_ATTRIBUTES ObjectAttributes
419 ACCESS_MASK DesiredAccess
,
420 POBJECT_ATTRIBUTES ObjectAttributes
426 ZwOpenSymbolicLinkObject(
427 OUT PHANDLE SymbolicLinkHandle
,
428 IN ACCESS_MASK DesiredAccess
,
429 IN POBJECT_ATTRIBUTES ObjectAttributes
435 ZwQueryDirectoryObject(
436 IN HANDLE DirectoryHandle
,
438 IN ULONG BufferLength
,
439 IN BOOLEAN ReturnSingleEntry
,
440 IN BOOLEAN RestartScan
,
441 IN OUT PULONG Context
,
442 OUT PULONG ReturnLength OPTIONAL
449 IN HANDLE ObjectHandle
,
450 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
451 OUT PVOID ObjectInformation
,
453 OUT PULONG ResultLength OPTIONAL
459 ZwQuerySecurityObject(
461 IN SECURITY_INFORMATION SecurityInformation
,
462 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
464 OUT PULONG ResultLength
470 ZwQuerySymbolicLinkObject(
471 IN HANDLE SymLinkObjHandle
,
472 OUT PUNICODE_STRING LinkTarget
,
473 OUT PULONG DataWritten OPTIONAL
479 ZwSetInformationObject(
480 IN HANDLE ObjectHandle
,
481 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
482 IN PVOID ObjectInformation
,
491 IN SECURITY_INFORMATION SecurityInformation
,
492 IN PSECURITY_DESCRIPTOR SecurityDescriptor
498 ZwSignalAndWaitForSingleObject(
499 IN HANDLE SignalObject
,
500 IN HANDLE WaitObject
,
501 IN BOOLEAN Alertable
,
502 IN PLARGE_INTEGER Time
508 ZwWaitForMultipleObjects(
511 IN WAIT_TYPE WaitType
,
512 IN BOOLEAN Alertable
,
513 IN PLARGE_INTEGER Time
519 ZwWaitForSingleObject(
521 IN BOOLEAN Alertable
,
522 IN PLARGE_INTEGER Time