:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / ntoskrnl / ob / security.c
1 /*
2  * COPYRIGHT:         See COPYING in the top level directory
3  * PROJECT:           ReactOS kernel
4  * PURPOSE:           Security manager
5  * FILE:              ntoskrnl/ob/security.c
6  * PROGRAMER:         ?
7  * REVISION HISTORY:
8  *                 26/07/98: Added stubs for security functions
9  */
10
11 /* INCLUDES *****************************************************************/
12
13 #include <ddk/ntddk.h>
14 #include <internal/ob.h>
15
16 #include <internal/debug.h>
17
18 /* FUNCTIONS ***************************************************************/
19
20 NTSTATUS STDCALL
21 ObAssignSecurity(IN PACCESS_STATE AccessState,
22                  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
23                  IN PVOID Object,
24                  IN POBJECT_TYPE Type)
25 {
26   UNIMPLEMENTED;
27 }
28
29
30 NTSTATUS STDCALL
31 ObGetObjectSecurity(IN PVOID Object,
32                     OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
33                     OUT PBOOLEAN MemoryAllocated)
34 {
35   UNIMPLEMENTED;
36 }
37
38
39 VOID STDCALL
40 ObReleaseObjectSecurity(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
41                         IN BOOLEAN MemoryAllocated)
42 {
43   UNIMPLEMENTED;
44 }
45
46
47 NTSTATUS STDCALL
48 NtQuerySecurityObject(IN HANDLE ObjectHandle,
49                       IN CINT SecurityObjectInformationClass,
50                       OUT PVOID SecurityObjectInformation,
51                       IN ULONG Length,
52                       OUT PULONG ReturnLength)
53 {
54    NTSTATUS Status;
55    PVOID Object;
56    OBJECT_HANDLE_INFORMATION HandleInfo;
57    POBJECT_HEADER Header;
58    
59    Status = ObReferenceObjectByHandle(ObjectHandle,
60                                       0,
61                                       NULL,
62                                       KeGetPreviousMode(),
63                                       &Object,
64                                       &HandleInfo);
65    if (!NT_SUCCESS(Status))
66      {
67         return(Status);
68      }
69   
70    Header = BODY_TO_HEADER(Object);
71    if (Header->ObjectType != NULL &&
72        Header->ObjectType->Security != NULL)
73      {
74         Status = Header->ObjectType->Security(Object,
75                                               SecurityObjectInformationClass,
76                                               SecurityObjectInformation,
77                                               &Length);
78         *ReturnLength = Length;
79      }
80    else
81      {
82         Status = STATUS_NOT_IMPLEMENTED;
83      }
84    ObDereferenceObject(Object);
85    return(Status);
86 }
87
88
89 NTSTATUS STDCALL
90 NtSetSecurityObject(IN HANDLE Handle,
91                     IN SECURITY_INFORMATION SecurityInformation,
92                     IN PSECURITY_DESCRIPTOR SecurityDescriptor)
93 {
94   UNIMPLEMENTED;
95 }
96
97 /* EOF */