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 ObSetSecurityObjectByPointer(
116 IN SECURITY_INFORMATION SecurityInformation
,
117 IN PSECURITY_DESCRIPTOR SecurityDescriptor
123 ObFindHandleForObject(
124 IN PEPROCESS Process
,
126 IN POBJECT_TYPE ObjectType
,
127 IN POBJECT_HANDLE_INFORMATION HandleInformation
,
133 ObDereferenceObjectDeferDelete(
152 NtCloseObjectAuditAlarm(
153 IN PUNICODE_STRING SubsystemName
,
155 IN BOOLEAN GenerateOnClose
161 NtCreateDirectoryObject(
162 OUT PHANDLE DirectoryHandle
,
163 IN ACCESS_MASK DesiredAccess
,
164 IN POBJECT_ATTRIBUTES ObjectAttributes
170 NtCreateSymbolicLinkObject(
171 OUT PHANDLE SymbolicLinkHandle
,
172 IN ACCESS_MASK DesiredAccess
,
173 IN POBJECT_ATTRIBUTES ObjectAttributes
,
174 IN PUNICODE_STRING Name
180 NtDeleteObjectAuditAlarm(
181 IN PUNICODE_STRING SubsystemName
,
183 IN BOOLEAN GenerateOnClose
190 IN HANDLE SourceProcessHandle
,
191 IN HANDLE SourceHandle
,
192 IN HANDLE TargetProcessHandle
,
193 OUT PHANDLE TargetHandle
,
194 IN ACCESS_MASK DesiredAccess
,
195 IN ULONG HandleAttributes
,
202 NtMakePermanentObject(
209 NtMakeTemporaryObject(
216 NtOpenDirectoryObject(
217 OUT PHANDLE FileHandle
,
218 IN ACCESS_MASK DesiredAccess
,
219 IN POBJECT_ATTRIBUTES ObjectAttributes
227 ACCESS_MASK DesiredAccess
,
228 POBJECT_ATTRIBUTES ObjectAttributes
234 NtOpenSymbolicLinkObject(
235 OUT PHANDLE SymbolicLinkHandle
,
236 IN ACCESS_MASK DesiredAccess
,
237 IN POBJECT_ATTRIBUTES ObjectAttributes
243 NtQueryDirectoryObject(
244 IN HANDLE DirectoryHandle
,
246 IN ULONG BufferLength
,
247 IN BOOLEAN ReturnSingleEntry
,
248 IN BOOLEAN RestartScan
,
249 IN OUT PULONG Context
,
250 OUT PULONG ReturnLength OPTIONAL
257 IN HANDLE ObjectHandle
,
258 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
259 OUT PVOID ObjectInformation
,
261 OUT PULONG ResultLength OPTIONAL
267 NtQuerySecurityObject(
269 IN SECURITY_INFORMATION SecurityInformation
,
270 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
272 OUT PULONG ResultLength
278 NtQuerySymbolicLinkObject(
279 IN HANDLE SymLinkObjHandle
,
280 OUT PUNICODE_STRING LinkTarget
,
281 OUT PULONG DataWritten OPTIONAL
287 NtSetInformationObject(
288 IN HANDLE ObjectHandle
,
289 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
290 IN PVOID ObjectInformation
,
299 IN SECURITY_INFORMATION SecurityInformation
,
300 IN PSECURITY_DESCRIPTOR SecurityDescriptor
306 NtSignalAndWaitForSingleObject(
307 IN HANDLE SignalObject
,
308 IN HANDLE WaitObject
,
309 IN BOOLEAN Alertable
,
310 IN PLARGE_INTEGER Time
316 NtWaitForMultipleObjects(
319 IN WAIT_TYPE WaitType
,
320 IN BOOLEAN Alertable
,
321 IN PLARGE_INTEGER Time
326 NtWaitForMultipleObjects32(
327 IN ULONG ObjectCount
,
329 IN WAIT_TYPE WaitType
,
330 IN BOOLEAN Alertable
,
331 IN PLARGE_INTEGER TimeOut OPTIONAL
337 NtWaitForSingleObject(
339 IN BOOLEAN Alertable
,
340 IN PLARGE_INTEGER Time
353 ZwCloseObjectAuditAlarm(
354 IN PUNICODE_STRING SubsystemName
,
356 IN BOOLEAN GenerateOnClose
362 ZwCreateDirectoryObject(
363 OUT PHANDLE DirectoryHandle
,
364 IN ACCESS_MASK DesiredAccess
,
365 IN POBJECT_ATTRIBUTES ObjectAttributes
371 ZwCreateSymbolicLinkObject(
372 OUT PHANDLE SymbolicLinkHandle
,
373 IN ACCESS_MASK DesiredAccess
,
374 IN POBJECT_ATTRIBUTES ObjectAttributes
,
375 IN PUNICODE_STRING Name
381 ZwDeleteObjectAuditAlarm(
382 IN PUNICODE_STRING SubsystemName
,
384 IN BOOLEAN GenerateOnClose
391 IN HANDLE SourceProcessHandle
,
392 IN HANDLE SourceHandle
,
393 IN HANDLE TargetProcessHandle
,
394 OUT PHANDLE TargetHandle
,
395 IN ACCESS_MASK DesiredAccess
,
396 IN ULONG HandleAttributes
,
403 ZwMakePermanentObject(
410 ZwMakeTemporaryObject(
417 ZwOpenDirectoryObject(
418 OUT PHANDLE FileHandle
,
419 IN ACCESS_MASK DesiredAccess
,
420 IN POBJECT_ATTRIBUTES ObjectAttributes
428 ACCESS_MASK DesiredAccess
,
429 POBJECT_ATTRIBUTES ObjectAttributes
435 ZwOpenSymbolicLinkObject(
436 OUT PHANDLE SymbolicLinkHandle
,
437 IN ACCESS_MASK DesiredAccess
,
438 IN POBJECT_ATTRIBUTES ObjectAttributes
444 ZwQueryDirectoryObject(
445 IN HANDLE DirectoryHandle
,
447 IN ULONG BufferLength
,
448 IN BOOLEAN ReturnSingleEntry
,
449 IN BOOLEAN RestartScan
,
450 IN OUT PULONG Context
,
451 OUT PULONG ReturnLength OPTIONAL
458 IN HANDLE ObjectHandle
,
459 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
460 OUT PVOID ObjectInformation
,
462 OUT PULONG ResultLength OPTIONAL
468 ZwQuerySecurityObject(
470 IN SECURITY_INFORMATION SecurityInformation
,
471 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
473 OUT PULONG ResultLength
479 ZwQuerySymbolicLinkObject(
480 IN HANDLE SymLinkObjHandle
,
481 OUT PUNICODE_STRING LinkTarget
,
482 OUT PULONG DataWritten OPTIONAL
488 ZwSetInformationObject(
489 IN HANDLE ObjectHandle
,
490 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
491 IN PVOID ObjectInformation
,
500 IN SECURITY_INFORMATION SecurityInformation
,
501 IN PSECURITY_DESCRIPTOR SecurityDescriptor
507 ZwSignalAndWaitForSingleObject(
508 IN HANDLE SignalObject
,
509 IN HANDLE WaitObject
,
510 IN BOOLEAN Alertable
,
511 IN PLARGE_INTEGER Time
517 ZwWaitForMultipleObjects(
520 IN WAIT_TYPE WaitType
,
521 IN BOOLEAN Alertable
,
522 IN PLARGE_INTEGER Time
528 ZwWaitForSingleObject(
530 IN BOOLEAN Alertable
,
531 IN PLARGE_INTEGER Time