- Implement RtlGetLastNtStatus, RtlGetLastWin32Error, RtlRestoreLastWin32Error, RtlSe...
authorEric Kohl <eric.kohl@reactos.org>
Sat, 12 Feb 2005 12:42:10 +0000 (12:42 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 12 Feb 2005 12:42:10 +0000 (12:42 +0000)
svn path=/trunk/; revision=13503

reactos/include/ntos/rtl.h
reactos/lib/ntdll/def/ntdll.def
reactos/lib/rtl/error.c

index 8a6d465..6623ea5 100755 (executable)
@@ -1319,6 +1319,12 @@ RtlGetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
                               PSID* Group,
                               PBOOLEAN GroupDefaulted);
 
+NTSTATUS STDCALL
+RtlGetLastNtStatus(VOID);
+
+ULONG STDCALL
+RtlGetLastWin32Error(VOID);
+
 NTSTATUS STDCALL
 RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator,
                 OUT PRTL_RANGE *Range,
@@ -2218,6 +2224,9 @@ RtlReserveChunk (
 VOID STDCALL
 RtlResetRtlTranslations (IN PNLSTABLEINFO NlsTable);
 
+VOID STDCALL
+RtlRestoreLastWin32Error(IN ULONG Error);
+
 /*
  * VOID
  * RtlRetrieveUlong (
@@ -2287,6 +2296,11 @@ RtlSelfRelativeToAbsoluteSD2(
 VOID STDCALL
 RtlSetAllBits (IN PRTL_BITMAP BitMapHeader);
 
+NTSTATUS STDCALL
+RtlSetAttributesSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+                                  IN SECURITY_DESCRIPTOR_CONTROL Control,
+                                  OUT PULONG Revision);
+
 VOID
 STDCALL
 RtlSetBit (
@@ -2318,6 +2332,18 @@ RtlSetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
                               PSID Group,
                               BOOLEAN GroupDefaulted);
 
+NTSTATUS STDCALL
+RtlSetInformationAcl (PACL Acl,
+                     PVOID Information,
+                     ULONG InformationLength,
+                     ACL_INFORMATION_CLASS InformationClass);
+
+VOID STDCALL
+RtlSetLastWin32Error(IN ULONG Error);
+
+VOID STDCALL
+RtlSetLastWin32ErrorAndNtStatusFromNtStatus(IN NTSTATUS Status);
+
 NTSTATUS STDCALL
 RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
                               PSID Owner,
@@ -2333,12 +2359,6 @@ VOID STDCALL
 RtlSetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,
                                  PUCHAR RMControl);
 
-NTSTATUS STDCALL
-RtlSetInformationAcl (PACL Acl,
-                     PVOID Information,
-                     ULONG InformationLength,
-                     ACL_INFORMATION_CLASS InformationClass);
-
 NTSTATUS STDCALL
 RtlSetTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation);
 
index 3122ecb..e1d6af9 100644 (file)
@@ -453,6 +453,8 @@ RtlGetDaclSecurityDescriptor@16
 RtlGetFirstRange@12
 RtlGetFullPathName_U@16
 RtlGetGroupSecurityDescriptor@12
+RtlGetLastNtStatus@0
+RtlGetLastWin32Error@0
 RtlGetLongestNtPathLength@0
 RtlGetNextRange@12
 RtlGetNtGlobalFlags@0
@@ -577,6 +579,7 @@ RtlReleasePebLock@0
 RtlReleaseResource@4
 ;RtlRemoteCall
 RtlResetRtlTranslations@4
+RtlRestoreLastWin32Error@4=RtlSetLastWin32Error@4
 RtlRunDecodeUnicodeString@8
 RtlRunEncodeUnicodeString@8
 RtlSecondsSince1970ToTime@8
@@ -593,6 +596,8 @@ RtlSetDaclSecurityDescriptor@16
 RtlSetEnvironmentVariable@12
 RtlSetGroupSecurityDescriptor@12
 RtlSetInformationAcl@16
+RtlSetLastWin32Error@4
+RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
 RtlSetOwnerSecurityDescriptor@12
 RtlSetSaclSecurityDescriptor@16
 RtlSetSecurityDescriptorRMControl@8
index 5a6e1ce..7765d67 100644 (file)
@@ -991,4 +991,44 @@ RtlNtStatusToPsxErrno(IN NTSTATUS Status)
    return -1; /* generic POSIX error */
 }
 
+
+/*
+ * @implemented
+ */
+NTSTATUS STDCALL
+RtlGetLastNtStatus(VOID)
+{
+  return NtCurrentTeb()->LastStatusValue;
+}
+
+
+/*
+ * @implemented
+ */
+ULONG STDCALL
+RtlGetLastWin32Error(VOID)
+{
+  return NtCurrentTeb()->LastErrorValue;
+}
+
+
+/*
+ * @implemented
+ */
+VOID STDCALL
+RtlSetLastWin32Error(IN ULONG Error)
+{
+  NtCurrentTeb()->LastErrorValue = Error;
+}
+
+
+/*
+ * @implemented
+ */
+VOID STDCALL
+RtlSetLastWin32ErrorAndNtStatusFromNtStatus(IN NTSTATUS Status)
+{
+  NtCurrentTeb()->LastErrorValue = RtlNtStatusToDosError(Status);
+}
+
 /* EOF */