ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

obfuncs.h
Go to the documentation of this file.
00001 /*++ NDK Version: 0098
00002 
00003 Copyright (c) Alex Ionescu.  All rights reserved.
00004 
00005 Header Name:
00006 
00007     obtypes.h
00008 
00009 Abstract:
00010 
00011     Type definitions for the Object Manager
00012 
00013 Author:
00014 
00015     Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
00016 
00017 --*/
00018 
00019 #ifndef _OBFUNCS_H
00020 #define _OBFUNCS_H
00021 
00022 //
00023 // Dependencies
00024 //
00025 #include <umtypes.h>
00026 #include <pstypes.h>
00027 #include <obtypes.h>
00028 
00029 #ifndef NTOS_MODE_USER
00030 
00031 //
00032 // Object Functions
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 // Native Calls
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

Generated on Mon May 28 2012 04:30:47 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.