update for HEAD-2003091401
[reactos.git] / lib / advapi32 / token / privilege.c
index 5fad2a4..97f4288 100644 (file)
 /**********************************************************************
  *     LookupPrivilegeValueA                           EXPORTED
  *     LookupPrivilegeValueW                           EXPORTED
+ *
+ * @implemented
  */
 BOOL STDCALL LookupPrivilegeValueA (
-       LPCSTR  lpSystemName, 
-       LPCSTR  lpName, 
-       PLUID   lpLuid 
+       LPCSTR  lpSystemName,
+       LPCSTR  lpName,
+       PLUID   lpLuid
        )
 {
        BOOL            rv = FALSE;
@@ -69,9 +71,9 @@ BOOL STDCALL LookupPrivilegeValueA (
         * of this API.
         */
        if (FALSE == (rv = LookupPrivilegeValueW (
-                               (lpSystemName ? SystemNameW.Buffer : NULL), 
-                               NameW.Buffer, 
-                               lpLuid 
+                               (lpSystemName ? SystemNameW.Buffer : NULL),
+                               NameW.Buffer,
+                               lpLuid
                                )
                        )
                )
@@ -103,7 +105,7 @@ BOOL STDCALL LookupPrivilegeValueA (
        }
        return (rv);
 }
+
 
 BOOL STDCALL LookupPrivilegeValueW (
        LPCWSTR lpSystemName, 
@@ -119,6 +121,8 @@ BOOL STDCALL LookupPrivilegeValueW (
 /**********************************************************************
  *     LookupPrivilegeDisplayNameA                     EXPORTED
  *     LookupPrivilegeDisplayNameW                     EXPORTED
+ *
+ * @unimplemented
  */
 BOOL STDCALL LookupPrivilegeDisplayNameA (
        LPCSTR  lpSystemName, 
@@ -131,8 +135,11 @@ BOOL STDCALL LookupPrivilegeDisplayNameA (
        SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
        return (FALSE);
 }
-       
 
+
+/*
+ * @unimplemented
+ */
 BOOL STDCALL LookupPrivilegeDisplayNameW (
        LPCWSTR lpSystemName, 
        LPCWSTR lpName, 
@@ -149,29 +156,60 @@ BOOL STDCALL LookupPrivilegeDisplayNameW (
 /**********************************************************************
  *     LookupPrivilegeNameA                            EXPORTED
  *     LookupPrivilegeNameW                            EXPORTED
+ *
+ * @unimplemented
  */
 BOOL STDCALL LookupPrivilegeNameA (
        LPCSTR  lpSystemName, 
        PLUID   lpLuid, 
        LPSTR   lpName, 
        LPDWORD cbName 
-       ) 
+       )
 {
        SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
        return (FALSE);
 }
 
+/*
+ * @unimplemented
+ */
 BOOL STDCALL LookupPrivilegeNameW (
        LPCWSTR lpSystemName, 
        PLUID   lpLuid, 
        LPWSTR  lpName, 
        LPDWORD cbName 
-       ) 
+       )
 {
        SetLastError (ERROR_CALL_NOT_IMPLEMENTED);
        return (FALSE);
 }
+
+
+/**********************************************************************
+ *     PrivilegeCheck                                  EXPORTED
+ *
+ * @implemented
+ */
+BOOL STDCALL
+PrivilegeCheck (HANDLE ClientToken,
+               PPRIVILEGE_SET RequiredPrivileges,
+               LPBOOL pfResult)
+{
+  BOOLEAN Result;
+  NTSTATUS Status;
+
+  Status = NtPrivilegeCheck (ClientToken,
+                            RequiredPrivileges,
+                            &Result);
+  if (!NT_SUCCESS (Status))
+    {
+      SetLastError (RtlNtStatusToDosError (Status));
+      return FALSE;
+    }
+
+  *pfResult = (BOOL) Result;
+
+  return TRUE;
+}
 
 /* EOF */