:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / lib / advapi32 / token / privilege.c
1 /* $Id$ 
2  *
3  * COPYRIGHT:       See COPYING in the top level directory
4  * PROJECT:         ReactOS system libraries
5  * FILE:            lib/advapi32/token/privilege.c
6  * PURPOSE:         advapi32.dll token's privilege handling
7  * PROGRAMMER:      E.Aliberti
8  * UPDATE HISTORY:
9  *      20010317 ea     stubs
10  */
11 #include <windows.h>
12 #include <ddk/ntddk.h>
13
14
15 /**********************************************************************
16  *      LookupPrivilegeValueA                           EXPORTED
17  *      LookupPrivilegeValueW                           EXPORTED
18  */
19 BOOL STDCALL LookupPrivilegeValueA (
20         LPCSTR  lpSystemName, 
21         LPCSTR  lpName, 
22         PLUID   lpLuid 
23         )
24 {
25         BOOL            rv = FALSE;
26         DWORD           le = ERROR_SUCCESS;
27
28         ANSI_STRING     SystemNameA;
29         UNICODE_STRING  SystemNameW;
30         ANSI_STRING     NameA;
31         UNICODE_STRING  NameW;
32
33         HANDLE          ProcessHeap = GetProcessHeap ();
34
35
36         /* Remote system? */
37         if (NULL != lpSystemName)
38         {
39                 RtlInitAnsiString (
40                         & SystemNameA,
41                         (LPSTR) lpSystemName
42                         );
43                 RtlAnsiStringToUnicodeString (
44                         & SystemNameW,
45                         & SystemNameA,
46                         TRUE
47                         );
48         }
49         /* Check the privilege name is not NULL */
50         if (NULL != lpName)
51         {
52                 RtlInitAnsiString (
53                         & NameA,
54                         (LPSTR) lpName
55                         );
56                 RtlAnsiStringToUnicodeString (
57                         & NameW,
58                         & NameA,
59                         TRUE
60                         );
61         }
62         else
63         {
64                 SetLastError (ERROR_INVALID_PARAMETER);
65                 return (FALSE);
66         }
67         /* 
68          * Forward the call to the UNICODE version
69          * of this API.
70          */
71         if (FALSE == (rv = LookupPrivilegeValueW (
72                                 (lpSystemName ? SystemNameW.Buffer : NULL), 
73                                 NameW.Buffer, 
74                                 lpLuid 
75                                 )
76                         )
77                 )
78         {
79                 le = GetLastError ();
80         }
81         /* Remote system? */
82         if (NULL != lpSystemName)
83         {
84                 RtlFreeHeap (
85                         ProcessHeap,
86                         0,
87                         SystemNameW.Buffer
88                         );
89         }
90         /* Name */
91         RtlFreeHeap (
92                 ProcessHeap,
93                 0,
94                NameW.Buffer
95                );
96         /*
97          * Set the last error, if any reported by
98          * the UNICODE call.
99          */
100         if (ERROR_SUCCESS != le)
101         {
102                 SetLastError (le);
103         }
104         return (rv);
105 }
106  
107
108 BOOL STDCALL LookupPrivilegeValueW (
109         LPCWSTR lpSystemName, 
110         LPCWSTR lpName, 
111         PLUID   lpLuid 
112         )
113 {
114         SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
115         return (FALSE);
116 }
117
118
119 /**********************************************************************
120  *      LookupPrivilegeDisplayNameA                     EXPORTED
121  *      LookupPrivilegeDisplayNameW                     EXPORTED
122  */
123 BOOL STDCALL LookupPrivilegeDisplayNameA (
124         LPCSTR  lpSystemName, 
125         LPCSTR  lpName, 
126         LPSTR   lpDisplayName, 
127         LPDWORD cbDisplayName, 
128         LPDWORD lpLanguageId 
129         )
130 {
131         SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
132         return (FALSE);
133 }
134         
135
136 BOOL STDCALL LookupPrivilegeDisplayNameW (
137         LPCWSTR lpSystemName, 
138         LPCWSTR lpName, 
139         LPWSTR  lpDisplayName, 
140         LPDWORD cbDisplayName, 
141         LPDWORD lpLanguageId 
142         )
143 {
144         SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
145         return (FALSE);
146 }
147
148
149 /**********************************************************************
150  *      LookupPrivilegeNameA                            EXPORTED
151  *      LookupPrivilegeNameW                            EXPORTED
152  */
153 BOOL STDCALL LookupPrivilegeNameA (
154         LPCSTR  lpSystemName, 
155         PLUID   lpLuid, 
156         LPSTR   lpName, 
157         LPDWORD cbName 
158         ) 
159 {
160         SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
161         return (FALSE);
162 }
163  
164
165 BOOL STDCALL LookupPrivilegeNameW (
166         LPCWSTR lpSystemName, 
167         PLUID   lpLuid, 
168         LPWSTR  lpName, 
169         LPDWORD cbName 
170         ) 
171 {
172         SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
173         return (FALSE);
174 }
175  
176
177 /* EOF */