00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _OBFUNCS_H
00020 #define _OBFUNCS_H
00021
00022
00023
00024
00025 #include <umtypes.h>
00026 #include <pstypes.h>
00027 #include <obtypes.h>
00028
00029 #ifndef NTOS_MODE_USER
00030
00031
00032
00033
00034 NTKERNELAPI
00035 NTSTATUS
00036 NTAPI
00037 ObAssignSecurity(
00038 IN PACCESS_STATE AccessState,
00039 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
00040 IN PVOID Object,
00041 IN POBJECT_TYPE Type
00042 );
00043
00044 NTKERNELAPI
00045 NTSTATUS
00046 NTAPI
00047 ObCloseHandle(
00048 IN HANDLE Handle,
00049 IN KPROCESSOR_MODE AccessMode
00050 );
00051
00052 NTKERNELAPI
00053 NTSTATUS
00054 NTAPI
00055 ObCreateObject(
00056 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL,
00057 IN POBJECT_TYPE ObjectType,
00058 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
00059 IN KPROCESSOR_MODE AccessMode,
00060 IN OUT PVOID ParseContext OPTIONAL,
00061 IN ULONG ObjectSize,
00062 IN ULONG PagedPoolCharge OPTIONAL,
00063 IN ULONG NonPagedPoolCharge OPTIONAL,
00064 OUT PVOID *Object
00065 );
00066
00067 NTKERNELAPI
00068 NTSTATUS
00069 NTAPI
00070 ObCreateObjectType(
00071 IN PUNICODE_STRING TypeName,
00072 IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer,
00073 IN PVOID Reserved,
00074 OUT POBJECT_TYPE *ObjectType
00075 );
00076
00077 NTKERNELAPI
00078 VOID
00079 NTAPI
00080 ObDereferenceSecurityDescriptor(
00081 PSECURITY_DESCRIPTOR SecurityDescriptor,
00082 ULONG Count
00083 );
00084
00085 NTKERNELAPI
00086 ULONG
00087 NTAPI
00088 ObGetObjectPointerCount(
00089 IN PVOID Object
00090 );
00091
00092 NTKERNELAPI
00093 NTSTATUS
00094 NTAPI
00095 ObLogSecurityDescriptor(
00096 IN PSECURITY_DESCRIPTOR InputSecurityDescriptor,
00097 OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor,
00098 IN ULONG RefBias
00099 );
00100
00101 NTKERNELAPI
00102 NTSTATUS
00103 NTAPI
00104 ObOpenObjectByName(
00105 IN POBJECT_ATTRIBUTES ObjectAttributes,
00106 IN POBJECT_TYPE ObjectType,
00107 IN KPROCESSOR_MODE AccessMode,
00108 IN PACCESS_STATE PassedAccessState,
00109 IN ACCESS_MASK DesiredAccess,
00110 IN OUT PVOID ParseContext,
00111 OUT PHANDLE Handle
00112 );
00113
00114 NTKERNELAPI
00115 NTSTATUS
00116 NTAPI
00117 ObReferenceObjectByName(
00118 IN PUNICODE_STRING ObjectName,
00119 IN ULONG Attributes,
00120 IN PACCESS_STATE PassedAccessState OPTIONAL,
00121 IN ACCESS_MASK DesiredAccess OPTIONAL,
00122 IN POBJECT_TYPE ObjectType,
00123 IN KPROCESSOR_MODE AccessMode,
00124 IN OUT PVOID ParseContext OPTIONAL,
00125 OUT PVOID *Object
00126 );
00127
00128 NTKERNELAPI
00129 VOID
00130 NTAPI
00131 ObReferenceSecurityDescriptor(
00132 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
00133 IN ULONG Count
00134 );
00135
00136 NTKERNELAPI
00137 NTSTATUS
00138 NTAPI
00139 ObSetSecurityObjectByPointer(
00140 IN PVOID Object,
00141 IN SECURITY_INFORMATION SecurityInformation,
00142 IN PSECURITY_DESCRIPTOR SecurityDescriptor
00143 );
00144
00145 NTKERNELAPI
00146 BOOLEAN
00147 NTAPI
00148 ObFindHandleForObject(
00149 IN PEPROCESS Process,
00150 IN PVOID Object,
00151 IN POBJECT_TYPE ObjectType,
00152 IN POBJECT_HANDLE_INFORMATION HandleInformation,
00153 OUT PHANDLE Handle
00154 );
00155
00156 NTKERNELAPI
00157 VOID
00158 NTAPI
00159 ObDereferenceObjectDeferDelete(
00160 IN PVOID Object
00161 );
00162
00163 #endif
00164
00165
00166
00167
00168 NTSYSCALLAPI
00169 NTSTATUS
00170 NTAPI
00171 NtClose(
00172 IN HANDLE Handle
00173 );
00174
00175 NTSYSCALLAPI
00176 NTSTATUS
00177 NTAPI
00178 NtCloseObjectAuditAlarm(
00179 IN PUNICODE_STRING SubsystemName,
00180 IN PVOID HandleId,
00181 IN BOOLEAN GenerateOnClose
00182 );
00183
00184 NTSYSCALLAPI
00185 NTSTATUS
00186 NTAPI
00187 NtCreateDirectoryObject(
00188 OUT PHANDLE DirectoryHandle,
00189 IN ACCESS_MASK DesiredAccess,
00190 IN POBJECT_ATTRIBUTES ObjectAttributes
00191 );
00192
00193 NTSYSCALLAPI
00194 NTSTATUS
00195 NTAPI
00196 NtCreateSymbolicLinkObject(
00197 OUT PHANDLE SymbolicLinkHandle,
00198 IN ACCESS_MASK DesiredAccess,
00199 IN POBJECT_ATTRIBUTES ObjectAttributes,
00200 IN PUNICODE_STRING Name
00201 );
00202
00203 NTSYSCALLAPI
00204 NTSTATUS
00205 NTAPI
00206 NtDeleteObjectAuditAlarm(
00207 IN PUNICODE_STRING SubsystemName,
00208 IN PVOID HandleId,
00209 IN BOOLEAN GenerateOnClose
00210 );
00211
00212 NTSYSCALLAPI
00213 NTSTATUS
00214 NTAPI
00215 NtDuplicateObject(
00216 IN HANDLE SourceProcessHandle,
00217 IN HANDLE SourceHandle,
00218 IN HANDLE TargetProcessHandle,
00219 OUT PHANDLE TargetHandle,
00220 IN ACCESS_MASK DesiredAccess,
00221 IN ULONG HandleAttributes,
00222 IN ULONG Options
00223 );
00224
00225 NTSYSCALLAPI
00226 NTSTATUS
00227 NTAPI
00228 NtMakePermanentObject(
00229 IN HANDLE Object
00230 );
00231
00232 NTSYSCALLAPI
00233 NTSTATUS
00234 NTAPI
00235 NtMakeTemporaryObject(
00236 IN HANDLE Handle
00237 );
00238
00239 NTSYSCALLAPI
00240 NTSTATUS
00241 NTAPI
00242 NtOpenDirectoryObject(
00243 OUT PHANDLE FileHandle,
00244 IN ACCESS_MASK DesiredAccess,
00245 IN POBJECT_ATTRIBUTES ObjectAttributes
00246 );
00247
00248 NTSYSCALLAPI
00249 NTSTATUS
00250 NTAPI
00251 NtOpenJobObject(
00252 PHANDLE JobHandle,
00253 ACCESS_MASK DesiredAccess,
00254 POBJECT_ATTRIBUTES ObjectAttributes
00255 );
00256
00257 NTSYSCALLAPI
00258 NTSTATUS
00259 NTAPI
00260 NtOpenSymbolicLinkObject(
00261 OUT PHANDLE SymbolicLinkHandle,
00262 IN ACCESS_MASK DesiredAccess,
00263 IN POBJECT_ATTRIBUTES ObjectAttributes
00264 );
00265
00266 NTSYSCALLAPI
00267 NTSTATUS
00268 NTAPI
00269 NtQueryDirectoryObject(
00270 IN HANDLE DirectoryHandle,
00271 OUT PVOID Buffer,
00272 IN ULONG BufferLength,
00273 IN BOOLEAN ReturnSingleEntry,
00274 IN BOOLEAN RestartScan,
00275 IN OUT PULONG Context,
00276 OUT PULONG ReturnLength OPTIONAL
00277 );
00278
00279 NTSYSCALLAPI
00280 NTSTATUS
00281 NTAPI
00282 NtQueryObject(
00283 IN HANDLE ObjectHandle,
00284 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
00285 OUT PVOID ObjectInformation,
00286 IN ULONG Length,
00287 OUT PULONG ResultLength OPTIONAL
00288 );
00289
00290 NTSYSCALLAPI
00291 NTSTATUS
00292 NTAPI
00293 NtQuerySecurityObject(
00294 IN HANDLE Handle,
00295 IN SECURITY_INFORMATION SecurityInformation,
00296 OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
00297 IN ULONG Length,
00298 OUT PULONG ResultLength
00299 );
00300
00301 NTSYSCALLAPI
00302 NTSTATUS
00303 NTAPI
00304 NtQuerySymbolicLinkObject(
00305 IN HANDLE SymLinkObjHandle,
00306 OUT PUNICODE_STRING LinkTarget,
00307 OUT PULONG DataWritten OPTIONAL
00308 );
00309
00310 NTSYSCALLAPI
00311 NTSTATUS
00312 NTAPI
00313 NtSetInformationObject(
00314 IN HANDLE ObjectHandle,
00315 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
00316 IN PVOID ObjectInformation,
00317 IN ULONG Length
00318 );
00319
00320 NTSYSCALLAPI
00321 NTSTATUS
00322 NTAPI
00323 NtSetSecurityObject(
00324 IN HANDLE Handle,
00325 IN SECURITY_INFORMATION SecurityInformation,
00326 IN PSECURITY_DESCRIPTOR SecurityDescriptor
00327 );
00328
00329 NTSYSCALLAPI
00330 NTSTATUS
00331 NTAPI
00332 NtSignalAndWaitForSingleObject(
00333 IN HANDLE SignalObject,
00334 IN HANDLE WaitObject,
00335 IN BOOLEAN Alertable,
00336 IN PLARGE_INTEGER Time
00337 );
00338
00339 NTSYSCALLAPI
00340 NTSTATUS
00341 NTAPI
00342 NtWaitForMultipleObjects(
00343 IN ULONG Count,
00344 IN HANDLE Object[],
00345 IN WAIT_TYPE WaitType,
00346 IN BOOLEAN Alertable,
00347 IN PLARGE_INTEGER Time
00348 );
00349
00350 NTSTATUS
00351 NTAPI
00352 NtWaitForMultipleObjects32(
00353 IN ULONG ObjectCount,
00354 IN PLONG Handles,
00355 IN WAIT_TYPE WaitType,
00356 IN BOOLEAN Alertable,
00357 IN PLARGE_INTEGER TimeOut OPTIONAL
00358 );
00359
00360 NTSYSCALLAPI
00361 NTSTATUS
00362 NTAPI
00363 NtWaitForSingleObject(
00364 IN HANDLE Object,
00365 IN BOOLEAN Alertable,
00366 IN PLARGE_INTEGER Time
00367 );
00368
00369 NTSYSAPI
00370 NTSTATUS
00371 NTAPI
00372 ZwClose(
00373 IN HANDLE Handle
00374 );
00375
00376 NTSYSAPI
00377 NTSTATUS
00378 NTAPI
00379 ZwCloseObjectAuditAlarm(
00380 IN PUNICODE_STRING SubsystemName,
00381 IN PVOID HandleId,
00382 IN BOOLEAN GenerateOnClose
00383 );
00384
00385 NTSYSAPI
00386 NTSTATUS
00387 NTAPI
00388 ZwCreateDirectoryObject(
00389 OUT PHANDLE DirectoryHandle,
00390 IN ACCESS_MASK DesiredAccess,
00391 IN POBJECT_ATTRIBUTES ObjectAttributes
00392 );
00393
00394 NTSYSAPI
00395 NTSTATUS
00396 NTAPI
00397 ZwCreateSymbolicLinkObject(
00398 OUT PHANDLE SymbolicLinkHandle,
00399 IN ACCESS_MASK DesiredAccess,
00400 IN POBJECT_ATTRIBUTES ObjectAttributes,
00401 IN PUNICODE_STRING Name
00402 );
00403
00404 NTSYSAPI
00405 NTSTATUS
00406 NTAPI
00407 ZwDeleteObjectAuditAlarm(
00408 IN PUNICODE_STRING SubsystemName,
00409 IN PVOID HandleId,
00410 IN BOOLEAN GenerateOnClose
00411 );
00412
00413 NTSYSAPI
00414 NTSTATUS
00415 NTAPI
00416 ZwDuplicateObject(
00417 IN HANDLE SourceProcessHandle,
00418 IN HANDLE SourceHandle,
00419 IN HANDLE TargetProcessHandle,
00420 OUT PHANDLE TargetHandle,
00421 IN ACCESS_MASK DesiredAccess,
00422 IN ULONG HandleAttributes,
00423 IN ULONG Options
00424 );
00425
00426 NTSYSAPI
00427 NTSTATUS
00428 NTAPI
00429 ZwMakePermanentObject(
00430 IN HANDLE Object
00431 );
00432
00433 NTSYSAPI
00434 NTSTATUS
00435 NTAPI
00436 ZwMakeTemporaryObject(
00437 IN HANDLE Handle
00438 );
00439
00440 NTSYSAPI
00441 NTSTATUS
00442 NTAPI
00443 ZwOpenDirectoryObject(
00444 OUT PHANDLE FileHandle,
00445 IN ACCESS_MASK DesiredAccess,
00446 IN POBJECT_ATTRIBUTES ObjectAttributes
00447 );
00448
00449 NTSYSAPI
00450 NTSTATUS
00451 NTAPI
00452 ZwOpenJobObject(
00453 PHANDLE JobHandle,
00454 ACCESS_MASK DesiredAccess,
00455 POBJECT_ATTRIBUTES ObjectAttributes
00456 );
00457
00458 NTSYSAPI
00459 NTSTATUS
00460 NTAPI
00461 ZwOpenSymbolicLinkObject(
00462 OUT PHANDLE SymbolicLinkHandle,
00463 IN ACCESS_MASK DesiredAccess,
00464 IN POBJECT_ATTRIBUTES ObjectAttributes
00465 );
00466
00467 NTSYSAPI
00468 NTSTATUS
00469 NTAPI
00470 ZwQueryDirectoryObject(
00471 IN HANDLE DirectoryHandle,
00472 OUT PVOID Buffer,
00473 IN ULONG BufferLength,
00474 IN BOOLEAN ReturnSingleEntry,
00475 IN BOOLEAN RestartScan,
00476 IN OUT PULONG Context,
00477 OUT PULONG ReturnLength OPTIONAL
00478 );
00479
00480 NTSYSAPI
00481 NTSTATUS
00482 NTAPI
00483 ZwQueryObject(
00484 IN HANDLE ObjectHandle,
00485 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
00486 OUT PVOID ObjectInformation,
00487 IN ULONG Length,
00488 OUT PULONG ResultLength OPTIONAL
00489 );
00490
00491 NTSYSAPI
00492 NTSTATUS
00493 NTAPI
00494 ZwQuerySecurityObject(
00495 IN HANDLE Handle,
00496 IN SECURITY_INFORMATION SecurityInformation,
00497 OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
00498 IN ULONG Length,
00499 OUT PULONG ResultLength
00500 );
00501
00502 NTSYSAPI
00503 NTSTATUS
00504 NTAPI
00505 ZwQuerySymbolicLinkObject(
00506 IN HANDLE SymLinkObjHandle,
00507 OUT PUNICODE_STRING LinkTarget,
00508 OUT PULONG DataWritten OPTIONAL
00509 );
00510
00511 NTSYSAPI
00512 NTSTATUS
00513 NTAPI
00514 ZwSetInformationObject(
00515 IN HANDLE ObjectHandle,
00516 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
00517 IN PVOID ObjectInformation,
00518 IN ULONG Length
00519 );
00520
00521 NTSYSAPI
00522 NTSTATUS
00523 NTAPI
00524 ZwSetSecurityObject(
00525 IN HANDLE Handle,
00526 IN SECURITY_INFORMATION SecurityInformation,
00527 IN PSECURITY_DESCRIPTOR SecurityDescriptor
00528 );
00529
00530 NTSYSAPI
00531 NTSTATUS
00532 NTAPI
00533 ZwSignalAndWaitForSingleObject(
00534 IN HANDLE SignalObject,
00535 IN HANDLE WaitObject,
00536 IN BOOLEAN Alertable,
00537 IN PLARGE_INTEGER Time
00538 );
00539
00540 NTSYSAPI
00541 NTSTATUS
00542 NTAPI
00543 ZwWaitForMultipleObjects(
00544 IN ULONG Count,
00545 IN HANDLE Object[],
00546 IN WAIT_TYPE WaitType,
00547 IN BOOLEAN Alertable,
00548 IN PLARGE_INTEGER Time
00549 );
00550
00551 NTSYSAPI
00552 NTSTATUS
00553 NTAPI
00554 ZwWaitForSingleObject(
00555 IN HANDLE Object,
00556 IN BOOLEAN Alertable,
00557 IN PLARGE_INTEGER Time
00558 );
00559
00560 #endif