ReactOS 0.4.16-dev-292-gbbdcc14
ob.h
Go to the documentation of this file.
1/*
2* PROJECT: ReactOS Kernel
3* LICENSE: GPL - See COPYING in the top level directory
4* FILE: ntoskrnl/include/internal/ob.h
5* PURPOSE: Internal header for the Object Manager
6* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7*/
8
9//
10// Define this if you want debugging support
11//
12#define _OB_DEBUG_ 0x00
13
14//
15// These define the Debug Masks Supported
16//
17#define OB_HANDLE_DEBUG 0x01
18#define OB_NAMESPACE_DEBUG 0x02
19#define OB_SECURITY_DEBUG 0x04
20#define OB_REFERENCE_DEBUG 0x08
21#define OB_CALLBACK_DEBUG 0x10
22
23//
24// Debug/Tracing support
25//
26#if _OB_DEBUG_
27#ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
28#define OBTRACE DbgPrintEx
29#else
30#define OBTRACE(x, ...) \
31 if (x & ObpTraceLevel) DbgPrint(__VA_ARGS__)
32#endif
33#else
34#define OBTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
35#endif
36
37//
38// Mask to detect GENERIC_XXX access masks being used
39//
40#define GENERIC_ACCESS \
41 (GENERIC_READ | \
42 GENERIC_WRITE | \
43 GENERIC_EXECUTE | \
44 GENERIC_ALL)
45
46//
47// Handle Bit Flags
48//
49#define OBJ_PROTECT_CLOSE 0x01
50//#define OBJ_INHERIT 0x02
51#define OBJ_AUDIT_OBJECT_CLOSE 0x04
52#define OBJ_HANDLE_ATTRIBUTES (OBJ_PROTECT_CLOSE |\
53 OBJ_INHERIT | \
54 OBJ_AUDIT_OBJECT_CLOSE)
55
56//
57// Handle Access Protection Close Flag
58//
59#define ObpAccessProtectCloseBit 0x02000000L
60
61//
62// System Process Quota Block
63//
64#define OBP_SYSTEM_PROCESS_QUOTA ((PEPROCESS_QUOTA_BLOCK)(ULONG_PTR)1)
65
66//
67// Identifies a Kernel Handle
68//
69#ifdef _WIN64
70#define KERNEL_HANDLE_FLAG 0xFFFFFFFF80000000ULL
71#else
72#define KERNEL_HANDLE_FLAG 0x80000000
73#endif
74#define ObpIsKernelHandle(Handle, ProcessorMode) \
75 ((((ULONG_PTR)(Handle) & KERNEL_HANDLE_FLAG) == KERNEL_HANDLE_FLAG) && \
76 ((ProcessorMode) == KernelMode) && \
77 ((Handle) != NtCurrentProcess()) && \
78 ((Handle) != NtCurrentThread()))
79
80//
81// Converts to and from a Kernel Handle to a normal handle
82//
83#define ObKernelHandleToHandle(Handle) \
84 (HANDLE)((ULONG_PTR)(Handle) & ~KERNEL_HANDLE_FLAG)
85#define ObMarkHandleAsKernelHandle(Handle) \
86 (HANDLE)((ULONG_PTR)(Handle) | KERNEL_HANDLE_FLAG)
87
88//
89// Converts from an EXHANDLE object to a POBJECT_HEADER
90//
91#define ObpGetHandleObject(x) \
92 ((POBJECT_HEADER)((ULONG_PTR)x->Object & ~OBJ_HANDLE_ATTRIBUTES))
93
94//
95// Recovers the security descriptor from a cached security descriptor header
96//
97#define ObpGetHeaderForSd(x) \
98 CONTAINING_RECORD((x), SECURITY_DESCRIPTOR_HEADER, SecurityDescriptor)
99
100//
101// Recovers the security descriptor from a cached security descriptor list entry
102//
103#define ObpGetHeaderForEntry(x) \
104 CONTAINING_RECORD((x), SECURITY_DESCRIPTOR_HEADER, Link)
105
106//
107// Context Structures for Ex*Handle Callbacks
108//
110{
114
116{
120
122{
127
128//
129// Cached Security Descriptor Header
130//
132{
138
139//
140// Cached Security Descriptor List
141//
142typedef struct _OB_SD_CACHE_LIST
143{
147
148//
149// Structure for quick-compare of a DOS Device path
150//
151typedef union
152{
153 WCHAR Name[sizeof(ULARGE_INTEGER) / sizeof(WCHAR)];
156
157//
158// Private Temporary Buffer for Lookup Routines
159//
160#define TAG_OB_TEMP_STORAGE 'tSbO'
161typedef struct _OB_TEMP_BUFFER
162{
168
169//
170// Startup and Shutdown Functions
171//
172CODE_SEG("INIT")
174NTAPI
176 VOID
177);
178
179VOID
180NTAPI
182 VOID
183);
184
185//
186// Directory Namespace Functions
187//
189NTAPI
192);
193
195NTAPI
199 IN POBJECT_HEADER ObjectHeader
200);
201
202PVOID
203NTAPI
208 IN UCHAR SearchShadow,
210);
211
212//
213// Symbolic Link Functions
214//
215VOID
216NTAPI
218 IN PVOID ObjectBody
219);
220
222NTAPI
224 IN PVOID ParsedObject,
229 IN OUT PUNICODE_STRING FullPath,
233 OUT PVOID *NextObject
234);
235
236VOID
237NTAPI
240);
241
242VOID
243NTAPI
246);
247
248//
249// Process/Handle Table Init/Rundown
250//
252NTAPI
256);
257
259NTAPI
262);
263
264VOID
265NTAPI
268);
269
270VOID
271NTAPI
274);
275
276//
277// Object Lookup Functions
278//
280NTAPI
282 IN HANDLE RootHandle OPTIONAL,
287 IN OUT PVOID ParseContext,
289 IN PVOID InsertObject OPTIONAL,
291 OUT POBP_LOOKUP_CONTEXT LookupContext,
292 OUT PVOID *FoundObject
293);
294
295//
296// Object Attribute Functions
297//
299NTAPI
301 IN OUT PHANDLE_TABLE_ENTRY HandleTableEntry,
303);
304
306NTAPI
311);
312
313//
314// Object Lifetime Functions
315//
316VOID
317NTAPI
320 IN BOOLEAN CalledFromWorkerThread
321);
322
323LONG
328);
329
330LONG
335);
336
341);
342
343VOID
344NTAPI
347);
348
349VOID
352 IN PVOID ObjectBody,
353 IN BOOLEAN Permanent
354);
355
356VOID
357NTAPI
360);
361
362VOID
363NTAPI
366);
367
369NTAPI
371 IN PEPROCESS SourceProcess,
373 IN PEPROCESS TargetProcess OPTIONAL,
379);
380
381VOID
382NTAPI
384 IN POBJECT_CREATE_INFORMATION ObjectCreateInfo
385);
386
387VOID
388NTAPI
391);
392
393VOID
394NTAPI
397);
398
400NTAPI
406);
407
408//
409// DOS Devices Functions
410//
412NTAPI
416);
417
419NTAPI
422);
423
424VOID
425NTAPI
428);
429
430VOID
433 IN PDEVICE_MAP DeviceMap
434);
435
436VOID
437NTAPI
441);
442
443CODE_SEG("INIT")
445NTAPI
447 VOID
448);
449
450ULONG
451NTAPI
453 VOID
454);
455
457NTAPI
459 VOID
460);
461
462//
463// Security descriptor cache functions
464//
465CODE_SEG("INIT")
467NTAPI
469 VOID
470);
471
473NTAPI
475 IN POBJECT_HEADER ObjectHeader
476);
477
478//
479// Object Security Routines
480//
482NTAPI
486 IN BOOLEAN LockHeld,
488 OUT PNTSTATUS ReturnedStatus
489);
490
492NTAPI
495 IN ACCESS_MASK CreateAccess,
497 IN PUNICODE_STRING ComponentName,
498 IN BOOLEAN LockHeld,
501);
502
504NTAPI
507 IN ACCESS_MASK TraverseAccess,
509 IN BOOLEAN LockHeld,
512);
513
515NTAPI
519 IN BOOLEAN LockHeld,
522);
523
524//
525// Default Object Security Callback Routines
526//
528NTAPI
533);
534
536NTAPI
539);
540
542NTAPI
548 IN PSECURITY_DESCRIPTOR *OutputSecurityDescriptor
549);
550
552NTAPI
557 IN OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor,
560);
561
562//
563// Executive Fast Referencing Functions
564//
565VOID
568 IN PEX_FAST_REF FastRef,
570);
571
572PVOID
575 IN PEX_FAST_REF FastRef,
577);
578
579PVOID
582 IN PEX_FAST_REF FastRef
583);
584
585PVOID
588 IN PEX_FAST_REF FastRef
589);
590
591VOID
594 IN PEX_FAST_REF FastRef,
596);
597
598//
599// Object Create and Object Name Capture Functions
600//
602NTAPI
604 IN PUNICODE_STRING CapturedName,
607 IN BOOLEAN AllocateFromLookaside
608);
609
611NTAPI
615 IN KPROCESSOR_MODE CreatorMode,
616 IN BOOLEAN AllocateFromLookaside,
617 IN POBJECT_CREATE_INFORMATION ObjectCreateInfo,
619);
620
621//
622// Miscellanea
623//
624ULONG
625NTAPI
628);
629
630//
631// Global data inside the Object Manager
632//
633extern ULONG ObpTraceLevel;
655
656//
657// Inlined Functions
658//
659#include "ob_x.h"
#define CODE_SEG(...)
static HANDLE DirectoryHandle
Definition: ObType.c:48
unsigned char BOOLEAN
static GENERIC_MAPPING GenericMapping
Definition: SeInheritance.c:11
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:732
LONG NTSTATUS
Definition: precomp.h:26
_Inout_ PFCB _Inout_ PUNICODE_STRING RemainingName
Definition: cdprocs.h:802
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
static const WCHAR SymbolicLink[]
Definition: interface.c:31
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:1340
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
ULONG Handle
Definition: gdb_input.c:15
#define Unused(x)
Definition: atlwin.h:28
* PNTSTATUS
Definition: strlen.c:14
ObjectType
Definition: metafile.c:81
struct _ULARGE_INTEGER ULARGE_INTEGER
DWORD * PSECURITY_INFORMATION
Definition: ms-dtyp.idl:311
_In_ HANDLE SourceHandle
Definition: obfuncs.h:429
_In_ HANDLE _In_opt_ HANDLE _Out_opt_ PHANDLE TargetHandle
Definition: obfuncs.h:431
_In_ HANDLE _In_opt_ HANDLE _Out_opt_ PHANDLE _In_ ACCESS_MASK _In_ ULONG HandleAttributes
Definition: obfuncs.h:433
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
int Count
Definition: noreturn.cpp:7
ULONG ACCESS_MASK
Definition: nt_native.h:40
#define FASTCALL
Definition: nt_native.h:50
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
volatile PVOID ObpReaperList
Definition: oblife.c:29
NTSTATUS NTAPI ObpCaptureObjectCreateInformation(IN POBJECT_ATTRIBUTES ObjectAttributes, IN KPROCESSOR_MODE AccessMode, IN KPROCESSOR_MODE CreatorMode, IN BOOLEAN AllocateFromLookaside, IN POBJECT_CREATE_INFORMATION ObjectCreateInfo, OUT PUNICODE_STRING ObjectName)
Definition: oblife.c:455
PDEVICE_MAP NTAPI ObpReferenceDeviceMap(VOID)
Definition: devicemap.c:325
ULONG NTAPI ObGetProcessHandleCount(IN PEPROCESS Process)
Definition: obhandle.c:56
VOID NTAPI ObpReapObject(IN PVOID Unused)
Definition: oblife.c:220
NTSTATUS NTAPI ObDeassignSecurity(IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
Definition: obsecure.c:60
VOID NTAPI ObKillProcess(IN PEPROCESS Process)
Definition: obhandle.c:2160
BOOLEAN NTAPI ObpCheckTraverseAccess(IN PVOID Object, IN ACCESS_MASK TraverseAccess, IN PACCESS_STATE AccessState OPTIONAL, IN BOOLEAN LockHeld, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus)
Definition: obsecure.c:267
ALIGNEDNAME ObpDosDevicesShortNamePrefix
Definition: obname.c:23
VOID NTAPI ObDereferenceProcessHandleTable(IN PEPROCESS Process)
Definition: obhandle.c:48
VOID NTAPI ObInheritDeviceMap(IN PEPROCESS Parent, IN PEPROCESS Process)
Definition: devicemap.c:511
BOOLEAN IoCountOperations
Definition: iomgr.c:38
POBJECT_DIRECTORY ObpTypeDirectoryObject
Definition: obname.c:20
PVOID FASTCALL ObFastReferenceObject(IN PEX_FAST_REF FastRef)
Definition: obref.c:132
NTSTATUS NTAPI ObAssignObjectSecurityDescriptor(IN PVOID Object, IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL, IN POOL_TYPE PoolType)
Definition: obsecure.c:20
POBJECT_TYPE ObpSymbolicLinkObjectType
Definition: oblink.c:19
BOOLEAN NTAPI ObpSetHandleAttributes(IN OUT PHANDLE_TABLE_ENTRY HandleTableEntry, IN ULONG_PTR Context)
Definition: obhandle.c:1859
NTSTATUS NTAPI ObSetDirectoryDeviceMap(OUT PDEVICE_MAP *DeviceMap, IN HANDLE DirectoryHandle)
Definition: devicemap.c:149
NTSTATUS NTAPI ObpCaptureObjectName(IN PUNICODE_STRING CapturedName, IN PUNICODE_STRING ObjectName, IN KPROCESSOR_MODE AccessMode, IN BOOLEAN AllocateFromLookaside)
struct _OBP_SET_HANDLE_ATTRIBUTES_CONTEXT * POBP_SET_HANDLE_ATTRIBUTES_CONTEXT
PSECURITY_DESCRIPTOR NTAPI ObpReferenceSecurityDescriptor(IN POBJECT_HEADER ObjectHeader)
Definition: obsdcach.c:181
UNICODE_STRING ObpDosDevicesShortName
Definition: obname.c:25
POBJECT_TYPE ObpTypeObjectType
Definition: oblife.c:22
VOID NTAPI ObpDeleteObjectType(IN PVOID Object)
Definition: oblife.c:1417
VOID NTAPI ObDereferenceDeviceMap(IN PEPROCESS Process)
Definition: devicemap.c:456
VOID FASTCALL ObpSetPermanentObject(IN PVOID ObjectBody, IN BOOLEAN Permanent)
Definition: oblife.c:266
NTSTATUS NTAPI ObSetDeviceMap(IN PEPROCESS Process, IN HANDLE DirectoryHandle)
Definition: devicemap.c:24
struct _OB_TEMP_BUFFER OB_TEMP_BUFFER
POBJECT_TYPE ObpDirectoryObjectType
Definition: obdir.c:20
PHANDLE_TABLE ObpKernelHandleTable
Definition: obhandle.c:20
VOID FASTCALL ObInitializeFastReference(IN PEX_FAST_REF FastRef, IN PVOID Object)
Definition: obref.c:107
VOID NTAPI ObFreeObjectCreateInfoBuffer(IN POBJECT_CREATE_INFORMATION ObjectCreateInfo)
Definition: oblife.c:603
struct _SECURITY_DESCRIPTOR_HEADER * PSECURITY_DESCRIPTOR_HEADER
LONG FASTCALL ObDereferenceObjectEx(IN PVOID Object, IN LONG Count)
Definition: obref.c:88
BOOLEAN NTAPI ObpDeleteEntryDirectory(IN POBP_LOOKUP_CONTEXT Context)
BOOLEAN NTAPI ObInitSystem(VOID)
Definition: obinit.c:203
ULONG ObpTraceLevel
Definition: obinit.c:47
BOOLEAN FASTCALL ObReferenceObjectSafe(IN PVOID Object)
Definition: obref.c:22
BOOLEAN NTAPI ObpCheckObjectReference(IN PVOID Object, IN OUT PACCESS_STATE AccessState, IN BOOLEAN LockHeld, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus)
Definition: obsecure.c:340
NTSTATUS NTAPI ObSetSecurityDescriptorInfo(IN PVOID Object, IN PSECURITY_INFORMATION SecurityInformation, IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor, IN POOL_TYPE PoolType, IN PGENERIC_MAPPING GenericMapping)
Definition: obsecure.c:117
WCHAR ObpUnsecureGlobalNamesBuffer[128]
Definition: obname.c:32
VOID NTAPI ObpDeleteSymbolicLinkName(IN POBJECT_SYMBOLIC_LINK SymbolicLink)
Definition: oblink.c:326
NTSTATUS NTAPI ObDuplicateObject(IN PEPROCESS SourceProcess, IN HANDLE SourceHandle, IN PEPROCESS TargetProcess OPTIONAL, IN PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options, IN KPROCESSOR_MODE PreviousMode)
Definition: obhandle.c:2204
ULONG ObpProtectionMode
Definition: obinit.c:57
NTSTATUS NTAPI ObpCreateDosDevicesDirectory(VOID)
Definition: obname.c:177
PVOID NTAPI ObpLookupEntryDirectory(IN POBJECT_DIRECTORY Directory, IN PUNICODE_STRING Name, IN ULONG Attributes, IN UCHAR SearchShadow, IN POBP_LOOKUP_CONTEXT Context)
Definition: obdir.c:158
KGUARDED_MUTEX ObpDeviceMapLock
Definition: oblife.c:24
ULONG ObpUnsecureGlobalNamesLength
Definition: obname.c:33
struct _OBP_FIND_HANDLE_DATA OBP_FIND_HANDLE_DATA
struct _OBP_FIND_HANDLE_DATA * POBP_FIND_HANDLE_DATA
VOID NTAPI ObpCreateSymbolicLinkName(IN POBJECT_SYMBOLIC_LINK SymbolicLink)
Definition: oblink.c:334
VOID NTAPI ObClearProcessHandleTable(IN PEPROCESS Process)
Definition: obhandle.c:2027
BOOLEAN NTAPI ObpInsertEntryDirectory(IN POBJECT_DIRECTORY Parent, IN POBP_LOOKUP_CONTEXT Context, IN POBJECT_HEADER ObjectHeader)
Definition: obdir.c:45
GENERAL_LOOKASIDE ObpNameBufferLookasideList
Definition: oblife.c:26
ULONG NTAPI ObIsLUIDDeviceMapsEnabled(VOID)
Definition: devicemap.c:662
BOOLEAN NTAPI ObCheckObjectAccess(IN PVOID Object, IN OUT PACCESS_STATE AccessState, IN BOOLEAN LockHeld, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS ReturnedStatus)
Definition: obsecure.c:441
NTSTATUS NTAPI ObQueryDeviceMapInformation(_In_opt_ PEPROCESS Process, _Out_ PPROCESS_DEVICEMAP_INFORMATION DeviceMapInfo, _In_ ULONG Flags)
Definition: devicemap.c:539
struct _OBP_CLOSE_HANDLE_CONTEXT * POBP_CLOSE_HANDLE_CONTEXT
WORK_QUEUE_ITEM ObpReaperWorkItem
Definition: oblife.c:28
ULONG ObpObjectSecurityMode
Definition: obinit.c:56
BOOLEAN NTAPI ObCheckCreateObjectAccess(IN PVOID Object, IN ACCESS_MASK CreateAccess, IN PACCESS_STATE AccessState, IN PUNICODE_STRING ComponentName, IN BOOLEAN LockHeld, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus)
Definition: obsecure.c:203
PVOID FASTCALL ObFastReplaceObject(IN PEX_FAST_REF FastRef, IN PVOID Object)
NTSTATUS NTAPI ObReferenceFileObjectForWrite(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode, OUT PFILE_OBJECT *FileObject, OUT POBJECT_HANDLE_INFORMATION HandleInformation)
Definition: obref.c:200
struct _OB_TEMP_BUFFER * POB_TEMP_BUFFER
POBJECT_DIRECTORY ObpRootDirectoryObject
Definition: obname.c:19
VOID NTAPI ObpDeleteObject(IN PVOID Object, IN BOOLEAN CalledFromWorkerThread)
Definition: oblife.c:147
PHANDLE_TABLE NTAPI ObReferenceProcessHandleTable(IN PEPROCESS Process)
Definition: obhandle.c:26
VOID NTAPI ObpDeleteNameCheck(IN PVOID Object)
Definition: obname.c:301
NTSTATUS NTAPI ObpParseSymbolicLink(IN PVOID ParsedObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING FullPath, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *NextObject)
Definition: oblink.c:431
ULONG ObpLUIDDeviceMapsEnabled
Definition: devicemap.c:18
LONG FASTCALL ObReferenceObjectEx(IN PVOID Object, IN LONG Count)
Definition: obref.c:77
PVOID FASTCALL ObFastReferenceObjectLocked(IN PEX_FAST_REF FastRef)
Definition: obref.c:119
GENERAL_LOOKASIDE ObpCreateInfoLookasideList
Definition: ob.h:644
VOID FASTCALL ObfDereferenceDeviceMap(IN PDEVICE_MAP DeviceMap)
Definition: devicemap.c:477
struct _OBP_CLOSE_HANDLE_CONTEXT OBP_CLOSE_HANDLE_CONTEXT
VOID NTAPI ObpFreeObjectNameBuffer(IN PUNICODE_STRING Name)
Definition: oblife.c:346
ULONG ObpLUIDDeviceMapsDisabled
Definition: devicemap.c:17
VOID NTAPI ObpDeleteSymbolicLink(IN PVOID ObjectBody)
VOID FASTCALL ObFastDereferenceObject(IN PEX_FAST_REF FastRef, IN PVOID Object)
Definition: obref.c:167
struct _OB_SD_CACHE_LIST OB_SD_CACHE_LIST
ALIGNEDNAME ObpDosDevicesShortNameRoot
Definition: obname.c:24
struct _OB_SD_CACHE_LIST * POB_SD_CACHE_LIST
struct _OBP_SET_HANDLE_ATTRIBUTES_CONTEXT OBP_SET_HANDLE_ATTRIBUTES_CONTEXT
NTSTATUS NTAPI ObInitProcess(IN PEPROCESS Parent OPTIONAL, IN PEPROCESS Process)
Definition: obhandle.c:2090
VOID NTAPI ObShutdownSystem(VOID)
NTSTATUS NTAPI ObpLookupObjectName(IN HANDLE RootHandle OPTIONAL, IN OUT PUNICODE_STRING ObjectName, IN ULONG Attributes, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, IN PVOID InsertObject OPTIONAL, IN OUT PACCESS_STATE AccessState, OUT POBP_LOOKUP_CONTEXT LookupContext, OUT PVOID *FoundObject)
Definition: obname.c:446
NTSTATUS NTAPI ObQuerySecurityDescriptorInfo(IN PVOID Object, IN PSECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PULONG Length, IN PSECURITY_DESCRIPTOR *OutputSecurityDescriptor)
Definition: obsecure.c:85
NTSTATUS NTAPI ObpInitSdCache(VOID)
Definition: obsdcach.c:61
struct _SECURITY_DESCRIPTOR_HEADER SECURITY_DESCRIPTOR_HEADER
KEVENT ObpDefaultObject
Definition: oblife.c:23
long LONG
Definition: pedump.c:60
#define volatile
Definition: prototyp.h:117
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
base for all directory entries
Definition: entries.h:138
Definition: extypes.h:596
Definition: typedefs.h:120
PHANDLE_TABLE HandleTable
Definition: ob.h:117
KPROCESSOR_MODE AccessMode
Definition: ob.h:118
POBJECT_HANDLE_INFORMATION HandleInformation
Definition: ob.h:125
POBJECT_TYPE ObjectType
Definition: ob.h:124
POBJECT_HEADER ObjectHeader
Definition: ob.h:123
OBJECT_HANDLE_ATTRIBUTE_INFORMATION Information
Definition: ob.h:112
KPROCESSOR_MODE PreviousMode
Definition: ob.h:111
EX_PUSH_LOCK PushLock
Definition: ob.h:144
LIST_ENTRY Head
Definition: ob.h:145
OBP_LOOKUP_CONTEXT LookupContext
Definition: ob.h:165
OBJECT_CREATE_INFORMATION ObjectCreateInfo
Definition: ob.h:164
AUX_ACCESS_DATA AuxData
Definition: ob.h:166
ACCESS_STATE LocalAccessState
Definition: ob.h:163
uint32_t * PULONG
Definition: typedefs.h:59
INT POOL_TYPE
Definition: typedefs.h:78
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
ULARGE_INTEGER Alignment
Definition: ob.h:154
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3534
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:191
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:64
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE GENERAL_LOOKASIDE
* PFILE_OBJECT
Definition: iotypes.h:1998
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
Definition: mmfuncs.h:396
_In_ ACCESS_MASK _In_opt_ POBJECT_TYPE _In_ KPROCESSOR_MODE _Out_ PVOID _Out_opt_ POBJECT_HANDLE_INFORMATION HandleInformation
Definition: obfuncs.h:44
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK _Out_ PNTSTATUS AccessStatus
Definition: sefuncs.h:21
_In_ KPROCESSOR_MODE PreviousMode
Definition: sefuncs.h:103
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE AccessState
Definition: sefuncs.h:417
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180