- Implement RtlGetLastNtStatus, RtlGetLastWin32Error, RtlRestoreLastWin32Error, RtlSetLastWin32Error and RtlSetLastWin32ErrorAndNtStatusFromNtStatus.

svn path=/trunk/; revision=13503
This commit is contained in:
Eric Kohl 2005-02-12 12:42:10 +00:00
parent df616c9b3b
commit feb76365e7
3 changed files with 71 additions and 6 deletions

View file

@ -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);

View 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

View 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 */