- 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, PSID* Group,
PBOOLEAN GroupDefaulted); PBOOLEAN GroupDefaulted);
NTSTATUS STDCALL
RtlGetLastNtStatus(VOID);
ULONG STDCALL
RtlGetLastWin32Error(VOID);
NTSTATUS STDCALL NTSTATUS STDCALL
RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator,
OUT PRTL_RANGE *Range, OUT PRTL_RANGE *Range,
@ -2218,6 +2224,9 @@ RtlReserveChunk (
VOID STDCALL VOID STDCALL
RtlResetRtlTranslations (IN PNLSTABLEINFO NlsTable); RtlResetRtlTranslations (IN PNLSTABLEINFO NlsTable);
VOID STDCALL
RtlRestoreLastWin32Error(IN ULONG Error);
/* /*
* VOID * VOID
* RtlRetrieveUlong ( * RtlRetrieveUlong (
@ -2287,6 +2296,11 @@ RtlSelfRelativeToAbsoluteSD2(
VOID STDCALL VOID STDCALL
RtlSetAllBits (IN PRTL_BITMAP BitMapHeader); RtlSetAllBits (IN PRTL_BITMAP BitMapHeader);
NTSTATUS STDCALL
RtlSetAttributesSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN SECURITY_DESCRIPTOR_CONTROL Control,
OUT PULONG Revision);
VOID VOID
STDCALL STDCALL
RtlSetBit ( RtlSetBit (
@ -2318,6 +2332,18 @@ RtlSetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
PSID Group, PSID Group,
BOOLEAN GroupDefaulted); 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 NTSTATUS STDCALL
RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor,
PSID Owner, PSID Owner,
@ -2333,12 +2359,6 @@ VOID STDCALL
RtlSetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor, RtlSetSecurityDescriptorRMControl(PSECURITY_DESCRIPTOR SecurityDescriptor,
PUCHAR RMControl); PUCHAR RMControl);
NTSTATUS STDCALL
RtlSetInformationAcl (PACL Acl,
PVOID Information,
ULONG InformationLength,
ACL_INFORMATION_CLASS InformationClass);
NTSTATUS STDCALL NTSTATUS STDCALL
RtlSetTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation); RtlSetTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation);

View file

@ -453,6 +453,8 @@ RtlGetDaclSecurityDescriptor@16
RtlGetFirstRange@12 RtlGetFirstRange@12
RtlGetFullPathName_U@16 RtlGetFullPathName_U@16
RtlGetGroupSecurityDescriptor@12 RtlGetGroupSecurityDescriptor@12
RtlGetLastNtStatus@0
RtlGetLastWin32Error@0
RtlGetLongestNtPathLength@0 RtlGetLongestNtPathLength@0
RtlGetNextRange@12 RtlGetNextRange@12
RtlGetNtGlobalFlags@0 RtlGetNtGlobalFlags@0
@ -577,6 +579,7 @@ RtlReleasePebLock@0
RtlReleaseResource@4 RtlReleaseResource@4
;RtlRemoteCall ;RtlRemoteCall
RtlResetRtlTranslations@4 RtlResetRtlTranslations@4
RtlRestoreLastWin32Error@4=RtlSetLastWin32Error@4
RtlRunDecodeUnicodeString@8 RtlRunDecodeUnicodeString@8
RtlRunEncodeUnicodeString@8 RtlRunEncodeUnicodeString@8
RtlSecondsSince1970ToTime@8 RtlSecondsSince1970ToTime@8
@ -593,6 +596,8 @@ RtlSetDaclSecurityDescriptor@16
RtlSetEnvironmentVariable@12 RtlSetEnvironmentVariable@12
RtlSetGroupSecurityDescriptor@12 RtlSetGroupSecurityDescriptor@12
RtlSetInformationAcl@16 RtlSetInformationAcl@16
RtlSetLastWin32Error@4
RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4
RtlSetOwnerSecurityDescriptor@12 RtlSetOwnerSecurityDescriptor@12
RtlSetSaclSecurityDescriptor@16 RtlSetSaclSecurityDescriptor@16
RtlSetSecurityDescriptorRMControl@8 RtlSetSecurityDescriptorRMControl@8

View file

@ -991,4 +991,44 @@ RtlNtStatusToPsxErrno(IN NTSTATUS Status)
return -1; /* generic POSIX error */ 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 */ /* EOF */