[XDK]
[reactos.git] / include / xdk / obfuncs.h
1 /******************************************************************************
2 * Object Manager Functions *
3 ******************************************************************************/
4
5 $if (_WDMDDK_)
6 #if (NTDDI_VERSION >= NTDDI_WIN2K)
7
8 NTKERNELAPI
9 LONG_PTR
10 FASTCALL
11 ObfDereferenceObject(
12 IN PVOID Object);
13 #define ObDereferenceObject ObfDereferenceObject
14
15 NTKERNELAPI
16 NTSTATUS
17 NTAPI
18 ObGetObjectSecurity(
19 IN PVOID Object,
20 OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
21 OUT PBOOLEAN MemoryAllocated);
22
23 NTKERNELAPI
24 LONG_PTR
25 FASTCALL
26 ObfReferenceObject(
27 IN PVOID Object);
28 #define ObReferenceObject ObfReferenceObject
29
30 NTKERNELAPI
31 NTSTATUS
32 NTAPI
33 ObReferenceObjectByHandle(
34 IN HANDLE Handle,
35 IN ACCESS_MASK DesiredAccess,
36 IN POBJECT_TYPE ObjectType OPTIONAL,
37 IN KPROCESSOR_MODE AccessMode,
38 OUT PVOID *Object,
39 OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
40
41 NTKERNELAPI
42 NTSTATUS
43 NTAPI
44 ObReferenceObjectByPointer(
45 IN PVOID Object,
46 IN ACCESS_MASK DesiredAccess,
47 IN POBJECT_TYPE ObjectType OPTIONAL,
48 IN KPROCESSOR_MODE AccessMode);
49
50 NTKERNELAPI
51 VOID
52 NTAPI
53 ObReleaseObjectSecurity(
54 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
55 IN BOOLEAN MemoryAllocated);
56
57 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
58
59 #if (NTDDI_VERSION >= NTDDI_VISTA)
60 NTKERNELAPI
61 VOID
62 NTAPI
63 ObDereferenceObjectDeferDelete(
64 IN PVOID Object);
65 #endif
66
67 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
68 NTKERNELAPI
69 NTSTATUS
70 NTAPI
71 ObRegisterCallbacks(
72 IN POB_CALLBACK_REGISTRATION CallbackRegistration,
73 OUT PVOID *RegistrationHandle);
74
75 NTKERNELAPI
76 VOID
77 NTAPI
78 ObUnRegisterCallbacks(
79 IN PVOID RegistrationHandle);
80
81 NTKERNELAPI
82 USHORT
83 NTAPI
84 ObGetFilterVersion(VOID);
85
86 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
87
88 #if (NTDDI_VERSION >= NTDDI_WIN7)
89
90 NTKERNELAPI
91 NTSTATUS
92 NTAPI
93 ObReferenceObjectByHandleWithTag(
94 IN HANDLE Handle,
95 IN ACCESS_MASK DesiredAccess,
96 IN POBJECT_TYPE ObjectType OPTIONAL,
97 IN KPROCESSOR_MODE AccessMode,
98 IN ULONG Tag,
99 OUT PVOID *Object,
100 OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
101
102 NTKERNELAPI
103 LONG_PTR
104 FASTCALL
105 ObfReferenceObjectWithTag(
106 IN PVOID Object,
107 IN ULONG Tag);
108
109 NTKERNELAPI
110 NTSTATUS
111 NTAPI
112 ObReferenceObjectByPointerWithTag(
113 IN PVOID Object,
114 IN ACCESS_MASK DesiredAccess,
115 IN POBJECT_TYPE ObjectType OPTIONAL,
116 IN KPROCESSOR_MODE AccessMode,
117 IN ULONG Tag);
118
119 NTKERNELAPI
120 LONG_PTR
121 FASTCALL
122 ObfDereferenceObjectWithTag(
123 IN PVOID Object,
124 IN ULONG Tag);
125
126 NTKERNELAPI
127 VOID
128 NTAPI
129 ObDereferenceObjectDeferDeleteWithTag(
130 IN PVOID Object,
131 IN ULONG Tag);
132
133 #define ObDereferenceObject ObfDereferenceObject
134 #define ObReferenceObject ObfReferenceObject
135 #define ObDereferenceObjectWithTag ObfDereferenceObjectWithTag
136 #define ObReferenceObjectWithTag ObfReferenceObjectWithTag
137
138 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
139
140 $endif
141