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 ObDereferenceSecurityDescriptor(
81 PSECURITY_DESCRIPTOR SecurityDescriptor
,
88 ObGetObjectPointerCount(
95 ObLogSecurityDescriptor(
96 IN PSECURITY_DESCRIPTOR InputSecurityDescriptor
,
97 OUT PSECURITY_DESCRIPTOR
*OutputSecurityDescriptor
,
105 IN POBJECT_ATTRIBUTES ObjectAttributes
,
106 IN POBJECT_TYPE ObjectType
,
107 IN KPROCESSOR_MODE AccessMode
,
108 IN PACCESS_STATE PassedAccessState
,
109 IN ACCESS_MASK DesiredAccess
,
110 IN OUT PVOID ParseContext
,
117 ObReferenceObjectByName(
118 IN PUNICODE_STRING ObjectName
,
120 IN PACCESS_STATE PassedAccessState OPTIONAL
,
121 IN ACCESS_MASK DesiredAccess OPTIONAL
,
122 IN POBJECT_TYPE ObjectType
,
123 IN KPROCESSOR_MODE AccessMode
,
124 IN OUT PVOID ParseContext OPTIONAL
,
131 ObReferenceSecurityDescriptor(
132 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
139 ObSetSecurityObjectByPointer(
141 IN SECURITY_INFORMATION SecurityInformation
,
142 IN PSECURITY_DESCRIPTOR SecurityDescriptor
148 ObFindHandleForObject(
149 IN PEPROCESS Process
,
151 IN POBJECT_TYPE ObjectType
,
152 IN POBJECT_HANDLE_INFORMATION HandleInformation
,
158 ObDereferenceObjectDeferDelete(
177 NtCloseObjectAuditAlarm(
178 IN PUNICODE_STRING SubsystemName
,
180 IN BOOLEAN GenerateOnClose
186 NtCreateDirectoryObject(
187 OUT PHANDLE DirectoryHandle
,
188 IN ACCESS_MASK DesiredAccess
,
189 IN POBJECT_ATTRIBUTES ObjectAttributes
195 NtCreateSymbolicLinkObject(
196 OUT PHANDLE SymbolicLinkHandle
,
197 IN ACCESS_MASK DesiredAccess
,
198 IN POBJECT_ATTRIBUTES ObjectAttributes
,
199 IN PUNICODE_STRING Name
205 NtDeleteObjectAuditAlarm(
206 IN PUNICODE_STRING SubsystemName
,
208 IN BOOLEAN GenerateOnClose
215 IN HANDLE SourceProcessHandle
,
216 IN HANDLE SourceHandle
,
217 IN HANDLE TargetProcessHandle
,
218 OUT PHANDLE TargetHandle
,
219 IN ACCESS_MASK DesiredAccess
,
220 IN ULONG HandleAttributes
,
227 NtMakePermanentObject(
234 NtMakeTemporaryObject(
241 NtOpenDirectoryObject(
242 OUT PHANDLE FileHandle
,
243 IN ACCESS_MASK DesiredAccess
,
244 IN POBJECT_ATTRIBUTES ObjectAttributes
252 ACCESS_MASK DesiredAccess
,
253 POBJECT_ATTRIBUTES ObjectAttributes
259 NtOpenSymbolicLinkObject(
260 OUT PHANDLE SymbolicLinkHandle
,
261 IN ACCESS_MASK DesiredAccess
,
262 IN POBJECT_ATTRIBUTES ObjectAttributes
268 NtQueryDirectoryObject(
269 IN HANDLE DirectoryHandle
,
271 IN ULONG BufferLength
,
272 IN BOOLEAN ReturnSingleEntry
,
273 IN BOOLEAN RestartScan
,
274 IN OUT PULONG Context
,
275 OUT PULONG ReturnLength OPTIONAL
282 IN HANDLE ObjectHandle
,
283 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
284 OUT PVOID ObjectInformation
,
286 OUT PULONG ResultLength OPTIONAL
292 NtQuerySecurityObject(
294 IN SECURITY_INFORMATION SecurityInformation
,
295 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
297 OUT PULONG ResultLength
303 NtQuerySymbolicLinkObject(
304 IN HANDLE SymLinkObjHandle
,
305 OUT PUNICODE_STRING LinkTarget
,
306 OUT PULONG DataWritten OPTIONAL
312 NtSetInformationObject(
313 IN HANDLE ObjectHandle
,
314 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
315 IN PVOID ObjectInformation
,
324 IN SECURITY_INFORMATION SecurityInformation
,
325 IN PSECURITY_DESCRIPTOR SecurityDescriptor
331 NtSignalAndWaitForSingleObject(
332 IN HANDLE SignalObject
,
333 IN HANDLE WaitObject
,
334 IN BOOLEAN Alertable
,
335 IN PLARGE_INTEGER Time
341 NtWaitForMultipleObjects(
344 IN WAIT_TYPE WaitType
,
345 IN BOOLEAN Alertable
,
346 IN PLARGE_INTEGER Time
351 NtWaitForMultipleObjects32(
352 IN ULONG ObjectCount
,
354 IN WAIT_TYPE WaitType
,
355 IN BOOLEAN Alertable
,
356 IN PLARGE_INTEGER TimeOut OPTIONAL
362 NtWaitForSingleObject(
364 IN BOOLEAN Alertable
,
365 IN PLARGE_INTEGER Time
378 ZwCloseObjectAuditAlarm(
379 IN PUNICODE_STRING SubsystemName
,
381 IN BOOLEAN GenerateOnClose
387 ZwCreateDirectoryObject(
388 OUT PHANDLE DirectoryHandle
,
389 IN ACCESS_MASK DesiredAccess
,
390 IN POBJECT_ATTRIBUTES ObjectAttributes
396 ZwCreateSymbolicLinkObject(
397 OUT PHANDLE SymbolicLinkHandle
,
398 IN ACCESS_MASK DesiredAccess
,
399 IN POBJECT_ATTRIBUTES ObjectAttributes
,
400 IN PUNICODE_STRING Name
406 ZwDeleteObjectAuditAlarm(
407 IN PUNICODE_STRING SubsystemName
,
409 IN BOOLEAN GenerateOnClose
416 IN HANDLE SourceProcessHandle
,
417 IN HANDLE SourceHandle
,
418 IN HANDLE TargetProcessHandle
,
419 OUT PHANDLE TargetHandle
,
420 IN ACCESS_MASK DesiredAccess
,
421 IN ULONG HandleAttributes
,
428 ZwMakePermanentObject(
435 ZwMakeTemporaryObject(
442 ZwOpenDirectoryObject(
443 OUT PHANDLE FileHandle
,
444 IN ACCESS_MASK DesiredAccess
,
445 IN POBJECT_ATTRIBUTES ObjectAttributes
453 ACCESS_MASK DesiredAccess
,
454 POBJECT_ATTRIBUTES ObjectAttributes
460 ZwOpenSymbolicLinkObject(
461 OUT PHANDLE SymbolicLinkHandle
,
462 IN ACCESS_MASK DesiredAccess
,
463 IN POBJECT_ATTRIBUTES ObjectAttributes
469 ZwQueryDirectoryObject(
470 IN HANDLE DirectoryHandle
,
472 IN ULONG BufferLength
,
473 IN BOOLEAN ReturnSingleEntry
,
474 IN BOOLEAN RestartScan
,
475 IN OUT PULONG Context
,
476 OUT PULONG ReturnLength OPTIONAL
483 IN HANDLE ObjectHandle
,
484 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
485 OUT PVOID ObjectInformation
,
487 OUT PULONG ResultLength OPTIONAL
493 ZwQuerySecurityObject(
495 IN SECURITY_INFORMATION SecurityInformation
,
496 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
498 OUT PULONG ResultLength
504 ZwQuerySymbolicLinkObject(
505 IN HANDLE SymLinkObjHandle
,
506 OUT PUNICODE_STRING LinkTarget
,
507 OUT PULONG DataWritten OPTIONAL
513 ZwSetInformationObject(
514 IN HANDLE ObjectHandle
,
515 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
516 IN PVOID ObjectInformation
,
525 IN SECURITY_INFORMATION SecurityInformation
,
526 IN PSECURITY_DESCRIPTOR SecurityDescriptor
532 ZwSignalAndWaitForSingleObject(
533 IN HANDLE SignalObject
,
534 IN HANDLE WaitObject
,
535 IN BOOLEAN Alertable
,
536 IN PLARGE_INTEGER Time
542 ZwWaitForMultipleObjects(
545 IN WAIT_TYPE WaitType
,
546 IN BOOLEAN Alertable
,
547 IN PLARGE_INTEGER Time
553 ZwWaitForSingleObject(
555 IN BOOLEAN Alertable
,
556 IN PLARGE_INTEGER Time