- Implement RtlGetLastNtStatus, RtlGetLastWin32Error,
RtlRestoreLastWin32Error, RtlSetLastWin32Error and
RtlSetLastWin32ErrorAndNtStatusFromNtStatus.
Modified: trunk/reactos/include/ntos/rtl.h
Modified: trunk/reactos/lib/ntdll/def/ntdll.def
Modified: trunk/reactos/lib/rtl/error.c
_____
Modified: trunk/reactos/include/ntos/rtl.h
--- trunk/reactos/include/ntos/rtl.h 2005-02-12 11:47:03 UTC (rev
13502)
+++ trunk/reactos/include/ntos/rtl.h 2005-02-12 12:42:10 UTC (rev
13503)
@@ -1320,6 +1320,12 @@
PBOOLEAN GroupDefaulted);
NTSTATUS STDCALL
+RtlGetLastNtStatus(VOID);
+
+ULONG STDCALL
+RtlGetLastWin32Error(VOID);
+
+NTSTATUS STDCALL
RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator,
OUT PRTL_RANGE *Range,
IN BOOLEAN MoveForwards);
@@ -2218,6 +2224,9 @@
VOID STDCALL
RtlResetRtlTranslations (IN PNLSTABLEINFO NlsTable);
+VOID STDCALL
+RtlRestoreLastWin32Error(IN ULONG Error);
+
/*
* VOID
* RtlRetrieveUlong (
@@ -2287,6 +2296,11 @@
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 (
@@ -2319,6 +2333,18 @@
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,
BOOLEAN OwnerDefaulted);
@@ -2334,12 +2360,6 @@
PUCHAR RMControl);
NTSTATUS STDCALL
-RtlSetInformationAcl (PACL Acl,
- PVOID Information,
- ULONG InformationLength,
- ACL_INFORMATION_CLASS InformationClass);
-
-NTSTATUS STDCALL
RtlSetTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION
TimeZoneInformation);
ULONG STDCALL
_____
Modified: trunk/reactos/lib/ntdll/def/ntdll.def
--- trunk/reactos/lib/ntdll/def/ntdll.def 2005-02-12 11:47:03 UTC
(rev 13502)
+++ trunk/reactos/lib/ntdll/def/ntdll.def 2005-02-12 12:42:10 UTC
(rev 13503)
@@ -453,6 +453,8 @@
RtlGetFirstRange@12
RtlGetFullPathName_U@16
RtlGetGroupSecurityDescriptor@12
+RtlGetLastNtStatus@0
+RtlGetLastWin32Error@0
RtlGetLongestNtPathLength@0
RtlGetNextRange@12
RtlGetNtGlobalFlags@0
@@ -577,6 +579,7 @@
RtlReleaseResource@4
;RtlRemoteCall
RtlResetRtlTranslations@4
+RtlRestoreLastWin32Error@4=RtlSetLastWin32Error@4
RtlRunDecodeUnicodeString@8
RtlRunEncodeUnicodeString@8
RtlSecondsSince1970ToTime@8
@@ -593,6 +596,8 @@
RtlSetEnvironmentVariable@12
RtlSetGroupSecurityDescriptor@12
RtlSetInformationAcl@16
+RtlSetLastWin32Error@4
+RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
RtlSetOwnerSecurityDescriptor@12
RtlSetSaclSecurityDescriptor@16
RtlSetSecurityDescriptorRMControl@8
_____
Modified: trunk/reactos/lib/rtl/error.c
--- trunk/reactos/lib/rtl/error.c 2005-02-12 11:47:03 UTC (rev
13502)
+++ trunk/reactos/lib/rtl/error.c 2005-02-12 12:42:10 UTC (rev
13503)
@@ -991,4 +991,44 @@
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 */
Show replies by date