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
27 #ifndef NTOS_MODE_USER
37 IN KPROCESSOR_MODE AccessMode
44 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL
,
45 IN POBJECT_TYPE ObjectType
,
46 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
47 IN KPROCESSOR_MODE AccessMode
,
48 IN OUT PVOID ParseContext OPTIONAL
,
50 IN ULONG PagedPoolCharge OPTIONAL
,
51 IN ULONG NonPagedPoolCharge OPTIONAL
,
58 IN PUNICODE_STRING TypeName
,
59 IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer
,
61 OUT POBJECT_TYPE
*ObjectType
67 ObGetObjectPointerCount(
74 IN POBJECT_ATTRIBUTES ObjectAttributes
,
75 IN POBJECT_TYPE ObjectType
,
76 IN KPROCESSOR_MODE AccessMode
,
77 IN PACCESS_STATE PassedAccessState
,
78 IN ACCESS_MASK DesiredAccess
,
79 IN OUT PVOID ParseContext
,
86 ObReferenceObjectByName(
87 IN PUNICODE_STRING ObjectName
,
89 IN PACCESS_STATE PassedAccessState OPTIONAL
,
90 IN ACCESS_MASK DesiredAccess OPTIONAL
,
91 IN POBJECT_TYPE ObjectType
,
92 IN KPROCESSOR_MODE AccessMode
,
93 IN OUT PVOID ParseContext OPTIONAL
,
100 ObFindHandleForObject(
101 IN PEPROCESS Process
,
103 IN POBJECT_TYPE ObjectType
,
104 IN POBJECT_HANDLE_INFORMATION HandleInformation
,
123 NtCloseObjectAuditAlarm(
124 IN PUNICODE_STRING SubsystemName
,
126 IN BOOLEAN GenerateOnClose
132 NtCreateDirectoryObject(
133 OUT PHANDLE DirectoryHandle
,
134 IN ACCESS_MASK DesiredAccess
,
135 IN POBJECT_ATTRIBUTES ObjectAttributes
141 NtCreateSymbolicLinkObject(
142 OUT PHANDLE SymbolicLinkHandle
,
143 IN ACCESS_MASK DesiredAccess
,
144 IN POBJECT_ATTRIBUTES ObjectAttributes
,
145 IN PUNICODE_STRING Name
151 NtDeleteObjectAuditAlarm(
152 IN PUNICODE_STRING SubsystemName
,
154 IN BOOLEAN GenerateOnClose
161 IN HANDLE SourceProcessHandle
,
162 IN HANDLE SourceHandle
,
163 IN HANDLE TargetProcessHandle
,
164 OUT PHANDLE TargetHandle
,
165 IN ACCESS_MASK DesiredAccess
,
166 IN ULONG HandleAttributes
,
173 NtMakePermanentObject(
180 NtMakeTemporaryObject(
187 NtOpenDirectoryObject(
188 OUT PHANDLE FileHandle
,
189 IN ACCESS_MASK DesiredAccess
,
190 IN POBJECT_ATTRIBUTES ObjectAttributes
198 ACCESS_MASK DesiredAccess
,
199 POBJECT_ATTRIBUTES ObjectAttributes
205 NtOpenSymbolicLinkObject(
206 OUT PHANDLE SymbolicLinkHandle
,
207 IN ACCESS_MASK DesiredAccess
,
208 IN POBJECT_ATTRIBUTES ObjectAttributes
214 NtQueryDirectoryObject(
215 IN HANDLE DirectoryHandle
,
217 IN ULONG BufferLength
,
218 IN BOOLEAN ReturnSingleEntry
,
219 IN BOOLEAN RestartScan
,
220 IN OUT PULONG Context
,
221 OUT PULONG ReturnLength OPTIONAL
228 IN HANDLE ObjectHandle
,
229 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
230 OUT PVOID ObjectInformation
,
232 OUT PULONG ResultLength OPTIONAL
238 NtQuerySecurityObject(
240 IN SECURITY_INFORMATION SecurityInformation
,
241 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
243 OUT PULONG ResultLength
249 NtQuerySymbolicLinkObject(
250 IN HANDLE SymLinkObjHandle
,
251 OUT PUNICODE_STRING LinkTarget
,
252 OUT PULONG DataWritten OPTIONAL
258 NtSetInformationObject(
259 IN HANDLE ObjectHandle
,
260 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
261 IN PVOID ObjectInformation
,
270 IN SECURITY_INFORMATION SecurityInformation
,
271 IN PSECURITY_DESCRIPTOR SecurityDescriptor
277 NtSignalAndWaitForSingleObject(
278 IN HANDLE SignalObject
,
279 IN HANDLE WaitObject
,
280 IN BOOLEAN Alertable
,
281 IN PLARGE_INTEGER Time
287 NtWaitForMultipleObjects(
290 IN WAIT_TYPE WaitType
,
291 IN BOOLEAN Alertable
,
292 IN PLARGE_INTEGER Time
298 NtWaitForSingleObject(
300 IN BOOLEAN Alertable
,
301 IN PLARGE_INTEGER Time
314 ZwCloseObjectAuditAlarm(
315 IN PUNICODE_STRING SubsystemName
,
317 IN BOOLEAN GenerateOnClose
323 ZwCreateDirectoryObject(
324 OUT PHANDLE DirectoryHandle
,
325 IN ACCESS_MASK DesiredAccess
,
326 IN POBJECT_ATTRIBUTES ObjectAttributes
332 ZwCreateSymbolicLinkObject(
333 OUT PHANDLE SymbolicLinkHandle
,
334 IN ACCESS_MASK DesiredAccess
,
335 IN POBJECT_ATTRIBUTES ObjectAttributes
,
336 IN PUNICODE_STRING Name
342 ZwDeleteObjectAuditAlarm(
343 IN PUNICODE_STRING SubsystemName
,
345 IN BOOLEAN GenerateOnClose
352 IN HANDLE SourceProcessHandle
,
353 IN HANDLE SourceHandle
,
354 IN HANDLE TargetProcessHandle
,
355 OUT PHANDLE TargetHandle
,
356 IN ACCESS_MASK DesiredAccess
,
357 IN ULONG HandleAttributes
,
364 ZwMakePermanentObject(
371 ZwMakeTemporaryObject(
378 ZwOpenDirectoryObject(
379 OUT PHANDLE FileHandle
,
380 IN ACCESS_MASK DesiredAccess
,
381 IN POBJECT_ATTRIBUTES ObjectAttributes
389 ACCESS_MASK DesiredAccess
,
390 POBJECT_ATTRIBUTES ObjectAttributes
396 ZwOpenSymbolicLinkObject(
397 OUT PHANDLE SymbolicLinkHandle
,
398 IN ACCESS_MASK DesiredAccess
,
399 IN POBJECT_ATTRIBUTES ObjectAttributes
405 ZwQueryDirectoryObject(
406 IN HANDLE DirectoryHandle
,
408 IN ULONG BufferLength
,
409 IN BOOLEAN ReturnSingleEntry
,
410 IN BOOLEAN RestartScan
,
411 IN OUT PULONG Context
,
412 OUT PULONG ReturnLength OPTIONAL
419 IN HANDLE ObjectHandle
,
420 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
421 OUT PVOID ObjectInformation
,
423 OUT PULONG ResultLength OPTIONAL
429 ZwQuerySecurityObject(
431 IN SECURITY_INFORMATION SecurityInformation
,
432 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
434 OUT PULONG ResultLength
440 ZwQuerySymbolicLinkObject(
441 IN HANDLE SymLinkObjHandle
,
442 OUT PUNICODE_STRING LinkTarget
,
443 OUT PULONG DataWritten OPTIONAL
449 ZwSetInformationObject(
450 IN HANDLE ObjectHandle
,
451 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
452 IN PVOID ObjectInformation
,
461 IN SECURITY_INFORMATION SecurityInformation
,
462 IN PSECURITY_DESCRIPTOR SecurityDescriptor
468 ZwSignalAndWaitForSingleObject(
469 IN HANDLE SignalObject
,
470 IN HANDLE WaitObject
,
471 IN BOOLEAN Alertable
,
472 IN PLARGE_INTEGER Time
478 ZwWaitForMultipleObjects(
481 IN WAIT_TYPE WaitType
,
482 IN BOOLEAN Alertable
,
483 IN PLARGE_INTEGER Time
489 ZwWaitForSingleObject(
491 IN BOOLEAN Alertable
,
492 IN PLARGE_INTEGER Time