diff --git a/reactos/include/funcs.h b/reactos/include/funcs.h index 7ef6ce07a0c..a1ab57c23ee 100644 --- a/reactos/include/funcs.h +++ b/reactos/include/funcs.h @@ -1209,13 +1209,6 @@ RtlEnumerateGenericTableWithoutSplaying( IN PVOID *RestartKey ); -VOID -STDCALL -RtlGetElementGenericTable( - IN PRTL_GENERIC_TABLE Table, - IN ULONG I - ); - PVOID STDCALL RtlLookupElementGenericTable( @@ -2237,28 +2230,6 @@ STDCALL RtlGetVersion( OUT PRTL_OSVERSIONINFOW lpVersionInformation ); -NTSTATUS -STDCALL -RtlHashUnicodeString( - IN const UNICODE_STRING *String, - IN BOOL CaseInSensitive, - IN ULONG HashAlgorithm, - OUT PULONG HashValue - ); -BOOL -STDCALL -RtlValidRelativeSecurityDescriptor ( - IN PSECURITY_DESCRIPTOR SecurityDescriptorInput, - IN ULONG SecurityDescriptorLength, - IN SECURITY_INFORMATION RequiredInformation - ); -NTSTATUS -STDCALL -RtlVerifyVersionInfo( - IN PRTL_OSVERSIONINFOEXW VersionInfo, - IN ULONG TypeMask, - IN ULONGLONG ConditionMask - ); ULONG STDCALL RtlWalkFrameChain ( diff --git a/reactos/include/ntos/rtl.h b/reactos/include/ntos/rtl.h index 47c49b3d39c..fd9fe6c4bb8 100755 --- a/reactos/include/ntos/rtl.h +++ b/reactos/include/ntos/rtl.h @@ -1,4 +1,4 @@ -/* $Id: rtl.h,v 1.31 2004/07/23 21:54:54 chorns Exp $ +/* $Id: rtl.h,v 1.32 2004/08/05 18:17:36 ion Exp $ * */ #ifndef __DDK_RTL_H @@ -473,12 +473,6 @@ RtlEqualUnicodeString ( BOOLEAN CaseInSensitive ); -VOID -STDCALL -RtlGetCallersAddress ( - PVOID * CallersAddress - ); - NTSTATUS STDCALL RtlQueryRegistryValues ( @@ -613,6 +607,16 @@ RtlAddAccessAllowedAce (PACL Acl, ACCESS_MASK AccessMask, PSID Sid); +NTSTATUS +STDCALL +RtlAddAccessAllowedAceEx( + IN OUT PACL pAcl, + IN DWORD dwAceRevision, + IN DWORD AceFlags, + IN DWORD AccessMask, + IN PSID pSid); + + NTSTATUS STDCALL RtlAddAccessDeniedAce (PACL Acl, ULONG Revision, @@ -739,6 +743,23 @@ RtlAssert ( PCHAR Message ); +VOID +STDCALL +RtlCaptureContext ( + OUT PCONTEXT ContextRecord + ); + +USHORT +STDCALL +RtlCaptureStackBackTrace ( + IN ULONG FramesToSkip, + IN ULONG FramesToCapture, + OUT PVOID *BackTrace, + OUT PULONG BackTraceHash OPTIONAL + ); + + + NTSTATUS STDCALL RtlCharToInteger ( @@ -760,6 +781,13 @@ RtlClearAllBits ( IN PRTL_BITMAP BitMapHeader ); +VOID +STDCALL +RtlClearBit ( + PRTL_BITMAP BitMapHeader, + ULONG BitNumber + ); + VOID STDCALL RtlClearBits ( @@ -902,6 +930,12 @@ NTSTATUS STDCALL RtlCreateSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, ULONG Revision); +NTSTATUS +STDCALL +RtlCreateSystemVolumeInformationFolder( + IN PUNICODE_STRING VolumeRootPath + ); + BOOLEAN STDCALL RtlCreateUnicodeString (OUT PUNICODE_STRING Destination, IN PWSTR Source); @@ -948,6 +982,12 @@ RtlDecompressFragment(IN USHORT CompressionFormat, OUT PULONG FinalUncompressedSize, IN PVOID WorkSpace); +PRTL_SPLAY_LINKS +STDCALL +RtlDelete ( + PRTL_SPLAY_LINKS Links + ); + NTSTATUS STDCALL RtlDeleteAce (PACL Acl, ULONG AceIndex); @@ -956,6 +996,28 @@ NTSTATUS STDCALL RtlDeleteAtomFromAtomTable (IN PRTL_ATOM_TABLE AtomTable, IN RTL_ATOM Atom); +BOOLEAN +STDCALL +RtlDeleteElementGenericTable ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer + ); + +BOOLEAN +STDCALL +RtlDeleteElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer + ); + +VOID +STDCALL +RtlDeleteNoSplay ( + PRTL_SPLAY_LINKS Links, + PRTL_SPLAY_LINKS *Root + ); + + NTSTATUS STDCALL RtlDeleteOwnersRanges (IN OUT PRTL_RANGE_LIST RangeList, IN PVOID Owner); @@ -979,6 +1041,14 @@ RtlDestroyAtomTable (IN PRTL_ATOM_TABLE AtomTable); BOOL STDCALL RtlDestroyHeap (HANDLE hheap); +NTSTATUS +STDCALL +RtlDispatchException( + PEXCEPTION_RECORD pExcptRec, + CONTEXT * pContext + ); + + NTSTATUS STDCALL RtlDowncaseUnicodeString ( @@ -1016,6 +1086,46 @@ RtlEnlargedUnsignedMultiply ( ULONG Multiplier ); +PVOID +STDCALL +RtlEnumerateGenericTable ( + PRTL_GENERIC_TABLE Table, + BOOLEAN Restart + ); + +PVOID +STDCALL +RtlEnumerateGenericTableAvl ( + PRTL_AVL_TABLE Table, + BOOLEAN Restart + ); + +PVOID +STDCALL +RtlEnumerateGenericTableLikeADirectory ( + IN PRTL_AVL_TABLE Table, + IN PRTL_AVL_MATCH_FUNCTION MatchFunction, + IN PVOID MatchData, + IN ULONG NextFlag, + IN OUT PVOID *RestartKey, + IN OUT PULONG DeleteCount, + IN OUT PVOID Buffer + ); + +PVOID +STDCALL +RtlEnumerateGenericTableWithoutSplaying ( + PRTL_GENERIC_TABLE Table, + PVOID *RestartKey + ); + +PVOID +STDCALL +RtlEnumerateGenericTableWithoutSplayingAvl ( + PRTL_AVL_TABLE Table, + PVOID *RestartKey + ); + BOOLEAN STDCALL RtlEqualPrefixSid (PSID Sid1, PSID Sid2); @@ -1079,6 +1189,40 @@ RtlFindClearBitsAndSet ( ULONG HintIndex ); +ULONG +STDCALL +RtlFindClearRuns ( + PRTL_BITMAP BitMapHeader, + PRTL_BITMAP_RUN RunArray, + ULONG SizeOfRunArray, + BOOLEAN LocateLongestRuns + ); + +ULONG +STDCALL +RtlFindLastBackwardRunClear ( + IN PRTL_BITMAP BitMapHeader, + IN ULONG FromIndex, + IN PULONG StartingRunIndex + ); + +ULONG +STDCALL +RtlFindNextForwardRunClear ( + IN PRTL_BITMAP BitMapHeader, + IN ULONG FromIndex, + IN PULONG StartingRunIndex + ); + + +PUNICODE_PREFIX_TABLE_ENTRY +STDCALL +RtlFindUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + PUNICODE_STRING FullName, + ULONG CaseInsensitiveIndex + ); + ULONG STDCALL RtlFindFirstRunClear ( @@ -1192,6 +1336,13 @@ RtlGetAce (PACL Acl, ULONG AceIndex, PACE *Ace); +VOID +STDCALL +RtlGetCallersAddress( + OUT PVOID *CallersAddress, + OUT PVOID *CallersCaller + ); + NTSTATUS STDCALL RtlGetCompressionWorkSpaceSize (IN USHORT CompressionFormatAndEngine, OUT PULONG CompressBufferAndWorkSpaceSize, @@ -1212,6 +1363,20 @@ VOID STDCALL RtlGetDefaultCodePage (OUT PUSHORT AnsiCodePage, OUT PUSHORT OemCodePage); +PVOID +STDCALL +RtlGetElementGenericTable( + PRTL_GENERIC_TABLE Table, + ULONG I + ); + +PVOID +STDCALL +RtlGetElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + ULONG I + ); + NTSTATUS STDCALL RtlGetFirstRange (IN PRTL_RANGE_LIST RangeList, OUT PRTL_RANGE_LIST_ITERATOR Iterator, @@ -1227,6 +1392,12 @@ RtlGetNextRange (IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, OUT PRTL_RANGE *Range, IN BOOLEAN MoveForwards); +ULONG +STDCALL +RtlGetNtGlobalFlags ( + VOID + ); + NTSTATUS STDCALL RtlGetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID* Owner, @@ -1238,10 +1409,30 @@ RtlGetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PACL* Sacl, PBOOLEAN SaclDefaulted); +NTSTATUS +STDCALL +RtlGetSetBootStatusData( + HANDLE Filehandle, + BOOLEAN WriteMode, + DWORD DataClass, + PVOID Buffer, + ULONG BufferSize, + DWORD DataClass2 + ); + NTSTATUS STDCALL RtlGUIDFromString (IN PUNICODE_STRING GuidString, OUT GUID* Guid); +NTSTATUS +STDCALL +RtlHashUnicodeString( + IN const UNICODE_STRING *String, + IN BOOLEAN CaseInSensitive, + IN ULONG HashAlgorithm, + OUT PULONG HashValue + ); + PSID_IDENTIFIER_AUTHORITY STDCALL RtlIdentifierAuthoritySid (PSID Sid); @@ -1291,6 +1482,12 @@ RtlInitCodePageTable ( OUT PCPTABLEINFO CodePageTable ); +VOID +STDCALL +RtlInitializeUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable + ); + NTSTATUS STDCALL RtlInitializeSid (PSID Sid, PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, @@ -1340,11 +1537,21 @@ RtlInitializeContext ( VOID STDCALL RtlInitializeGenericTable ( - IN OUT PRTL_GENERIC_TABLE Table, - IN PVOID CompareRoutine, - IN PVOID AllocateRoutine, - IN PVOID FreeRoutine, - IN ULONG UserParameter + PRTL_GENERIC_TABLE Table, + PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine, + PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine, + PRTL_GENERIC_FREE_ROUTINE FreeRoutine, + PVOID TableContext + ); + +VOID +STDCALL +RtlInitializeGenericTableAvl ( + PRTL_AVL_TABLE Table, + PRTL_AVL_COMPARE_ROUTINE CompareRoutine, + PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine, + PRTL_AVL_FREE_ROUTINE FreeRoutine, + PVOID TableContext ); VOID STDCALL @@ -1353,10 +1560,57 @@ RtlInitializeRangeList (IN OUT PRTL_RANGE_LIST RangeList); PVOID STDCALL RtlInsertElementGenericTable ( - IN OUT PRTL_GENERIC_TABLE Table, - IN PVOID Element, - IN ULONG ElementSize, - IN ULONG Unknown4 + PRTL_GENERIC_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL + ); + +PVOID +STDCALL +RtlInsertElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL + ); + +PVOID +STDCALL +RtlInsertElementGenericTableFull ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL, + PVOID NodeOrParent, + TABLE_SEARCH_RESULT SearchResult + ); + +PVOID +STDCALL +RtlInsertElementGenericTableFullAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL, + PVOID NodeOrParent, + TABLE_SEARCH_RESULT SearchResult + ); + +BOOLEAN +STDCALL +RtlInsertUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + PUNICODE_STRING Prefix, + PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry + ); + +NTSTATUS +STDCALL +RtlInt64ToUnicodeString ( + IN ULONGLONG Value, + IN ULONG Base OPTIONAL, + IN OUT PUNICODE_STRING String ); NTSTATUS @@ -1380,8 +1634,154 @@ NTSTATUS STDCALL RtlInvertRangeList (OUT PRTL_RANGE_LIST InvertedRangeList, IN PRTL_RANGE_LIST RangeList); -BOOLEAN STDCALL -RtlIsGenericTableEmpty (IN PRTL_GENERIC_TABLE Table); +NTSTATUS +STDCALL +RtlIpv4AddressToStringA( + PULONG IP, + LPSTR Buffer + ); + +NTSTATUS +STDCALL +RtlIpv4AddressToStringExA( + PULONG IP, + PULONG Port, + LPSTR Buffer, + PULONG MaxSize + ); + +NTSTATUS +STDCALL +RtlIpv4AddressToStringW( + PULONG IP, + LPWSTR Buffer + ); + +NTSTATUS +STDCALL +RtlIpv4AddressToStringExW( + PULONG IP, + PULONG Port, + LPWSTR Buffer, + PULONG MaxSize + ); + +NTSTATUS +STDCALL +RtlIpv4StringToAddressA( + IN LPSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ); + +NTSTATUS +STDCALL +RtlIpv4StringToAddressExA( + IN LPSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ); + +NTSTATUS +STDCALL +RtlIpv4StringToAddressW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ); + +NTSTATUS +STDCALL +RtlIpv4StringToAddressExW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ); + +NTSTATUS +STDCALL +RtlIpv6AddressToStringA( + PULONG IP, + LPSTR Buffer + ); + +NTSTATUS +STDCALL +RtlIpv6AddressToStringExA( + PULONG IP, + PULONG Port, + LPSTR Buffer, + PULONG MaxSize + ); + +NTSTATUS +STDCALL +RtlIpv6AddressToStringW( + PULONG IP, + LPWSTR Buffer + ); + +NTSTATUS +STDCALL +RtlIpv6AddressToStringExW( + PULONG IP, + PULONG Port, + LPWSTR Buffer, + PULONG MaxSize + ); + +NTSTATUS +STDCALL +RtlIpv6StringToAddressA( + IN LPSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ); + +NTSTATUS +STDCALL +RtlIpv6StringToAddressExA( + IN LPSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ); + +NTSTATUS +STDCALL +RtlIpv6StringToAddressW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ); + +NTSTATUS +STDCALL +RtlIpv6StringToAddressExW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ); + +BOOLEAN +STDCALL +RtlIsGenericTableEmpty ( + PRTL_GENERIC_TABLE Table + ); + +BOOLEAN +STDCALL +RtlIsGenericTableEmptyAvl ( + PRTL_AVL_TABLE Table + ); + BOOLEAN STDCALL RtlIsNameLegalDOS8Dot3 (IN PUNICODE_STRING UnicodeName, @@ -1406,6 +1806,12 @@ RtlIsTextUnicode ( ULONG *Flags ); +BOOLEAN +STDCALL +RtlIsValidOemCharacter ( + IN PWCHAR Char + ); + LARGE_INTEGER STDCALL RtlLargeIntegerAdd ( @@ -1597,6 +2003,12 @@ RtlLengthSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor); ULONG STDCALL RtlLengthSid (PSID Sid); +NTSTATUS +STDCALL +RtlLockBootStatusData( + HANDLE Filehandle + ); + BOOL STDCALL RtlLockHeap ( @@ -1608,6 +2020,38 @@ RtlLookupAtomInAtomTable (IN PRTL_ATOM_TABLE AtomTable, IN PWSTR AtomName, OUT PRTL_ATOM Atom); +PVOID +STDCALL +RtlLookupElementGenericTable ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer + ); + +PVOID +STDCALL +RtlLookupElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer + ); + +PVOID +STDCALL +RtlLookupElementGenericTableFull ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer, + OUT PVOID *NodeOrParent, + OUT TABLE_SEARCH_RESULT *SearchResult + ); + +PVOID +STDCALL +RtlLookupElementGenericTableFullAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer, + OUT PVOID *NodeOrParent, + OUT TABLE_SEARCH_RESULT *SearchResult + ); + NTSTATUS STDCALL RtlMakeSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD, PSECURITY_DESCRIPTOR RelSD, @@ -1617,6 +2061,12 @@ VOID STDCALL RtlMapGenericMask (PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping); +NTSTATUS +STDCALL +RtlMapSecurityErrorToNtStatus( + IN ULONG SecurityError + ); + NTSTATUS STDCALL RtlMergeRangeLists (OUT PRTL_RANGE_LIST MergedRangeList, IN PRTL_RANGE_LIST RangeList1, @@ -1641,6 +2091,13 @@ RtlMultiByteToUnicodeSize ( ULONG MbSize ); +PUNICODE_PREFIX_TABLE_ENTRY +STDCALL +RtlNextUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + BOOLEAN Restart + ); + DWORD STDCALL RtlNtStatusToDosError ( @@ -1661,10 +2118,17 @@ RtlNtStatusToPsxErrno ( ULONG STDCALL -RtlNumberGenericTableElements ( - IN PRTL_GENERIC_TABLE Table +RtlNumberGenericTableElements( + PRTL_GENERIC_TABLE Table ); +ULONG +STDCALL +RtlNumberGenericTableElementsAvl ( + PRTL_AVL_TABLE Table + ); + + ULONG STDCALL RtlNumberOfClearBits ( @@ -1693,12 +2157,12 @@ RtlOemStringToUnicodeString ( NTSTATUS STDCALL -RtlOemToUnicodeN ( - PWCHAR UnicodeString, - ULONG UnicodeSize, - PULONG ResultSize, - PCHAR OemString, - ULONG OemSize +RtlOemToUnicodeN( + PWSTR UnicodeString, + ULONG MaxBytesInUnicodeString, + PULONG BytesInUnicodeString, + IN PCHAR OemString, + ULONG BytesInOemString ); NTSTATUS STDCALL @@ -1707,6 +2171,13 @@ RtlPinAtomInAtomTable ( IN RTL_ATOM Atom ); +VOID +FASTCALL +RtlPrefetchMemoryNonTemporal( + IN PVOID Source, + IN SIZE_T Length + ); + BOOLEAN STDCALL RtlPrefixString ( @@ -1746,9 +2217,29 @@ RtlQueryTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation); VOID STDCALL RtlRaiseException (IN PEXCEPTION_RECORD ExceptionRecord); +VOID STDCALL RtlRaiseStatus(NTSTATUS Status); + ULONG STDCALL RtlRandom (PULONG Seed); +ULONG +STDCALL +RtlRandomEx( + PULONG Seed + ); + +PRTL_SPLAY_LINKS +STDCALL +RtlRealPredecessor ( + PRTL_SPLAY_LINKS Links + ); + +PRTL_SPLAY_LINKS +STDCALL +RtlRealSuccessor ( + PRTL_SPLAY_LINKS Links + ); + LPVOID STDCALL RtlReAllocateHeap ( @@ -1758,6 +2249,13 @@ RtlReAllocateHeap ( DWORD size ); +VOID +STDCALL +RtlRemoveUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry + ); + NTSTATUS STDCALL RtlReserveChunk ( @@ -1830,9 +2328,23 @@ RtlSelfRelativeToAbsoluteSD (PSECURITY_DESCRIPTOR RelSD, PSID Group, PULONG GroupSize); +NTSTATUS +STDCALL +RtlSelfRelativeToAbsoluteSD2( + PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor, + PULONG BufferSize + ); + VOID STDCALL RtlSetAllBits (IN PRTL_BITMAP BitMapHeader); +VOID +STDCALL +RtlSetBit ( + PRTL_BITMAP BitMapHeader, + ULONG BitNumber + ); + VOID STDCALL RtlSetBits ( @@ -1872,12 +2384,18 @@ RtlSetInformationAcl (PACL Acl, NTSTATUS STDCALL RtlSetTimeZoneInformation (IN OUT PTIME_ZONE_INFORMATION TimeZoneInformation); -DWORD +ULONG STDCALL -RtlSizeHeap ( - HANDLE hheap, - DWORD flags, - PVOID pmem +RtlSizeHeap( + IN PVOID HeapHandle, + IN ULONG Flags, + IN PVOID MemoryPointer + ); + +PRTL_SPLAY_LINKS +STDCALL +RtlSplay ( + PRTL_SPLAY_LINKS Links ); /* @@ -1933,11 +2451,25 @@ RtlSubAuthoritySid (PSID Sid, PUCHAR STDCALL RtlSubAuthorityCountSid (PSID Sid); -PRTL_SPLAY_LINKS STDCALL -RtlSubtreePredecessor (IN PRTL_SPLAY_LINKS Links); +PRTL_SPLAY_LINKS +STDCALL +RtlSubtreePredecessor ( + PRTL_SPLAY_LINKS Links + ); + +PRTL_SPLAY_LINKS +STDCALL +RtlSubtreeSuccessor ( + PRTL_SPLAY_LINKS Links + ); + +BOOLEAN +STDCALL +RtlTestBit ( + PRTL_BITMAP BitMapHeader, + ULONG BitNumber + ); -PRTL_SPLAY_LINKS STDCALL -RtlSubtreeSuccessor (IN PRTL_SPLAY_LINKS Links); BOOLEAN STDCALL RtlTimeFieldsToTime (PTIME_FIELDS TimeFields, @@ -1957,6 +2489,13 @@ RtlTimeToSecondsSince1980 ( PULONG SecondsSince1980 ); +VOID +STDCALL +RtlTimeToElapsedTimeFields( + PLARGE_INTEGER Time, + PTIME_FIELDS TimeFields + ); + VOID STDCALL RtlTimeToTimeFields ( @@ -1964,6 +2503,7 @@ RtlTimeToTimeFields ( PTIME_FIELDS TimeFields ); + ULONG FASTCALL RtlUlongByteSwap (IN ULONG Source); @@ -2062,6 +2602,12 @@ RtlUnlockHeap ( HANDLE hheap ); +NTSTATUS +STDCALL +RtlUnlockBootStatusData( + HANDLE Filehandle + ); + VOID STDCALL RtlUnwind ( @@ -2161,12 +2707,45 @@ RtlValidateHeap ( PVOID pmem ); +BOOLEAN +STDCALL +RtlValidRelativeSecurityDescriptor ( + IN PSECURITY_DESCRIPTOR SecurityDescriptorInput, + IN ULONG SecurityDescriptorLength, + IN SECURITY_INFORMATION RequiredInformation + ); + BOOLEAN STDCALL RtlValidSecurityDescriptor (IN PSECURITY_DESCRIPTOR SecurityDescriptor); BOOLEAN STDCALL RtlValidSid (IN PSID Sid); +/* +NTSTATUS +STDCALL +RtlVerifyVersionInfo( + IN PRTL_OSVERSIONINFOEXW VersionInfo, + IN ULONG TypeMask, + IN ULONGLONG ConditionMask + ); +*/ + +NTSTATUS +STDCALL +RtlVolumeDeviceToDosName( + IN PVOID VolumeDeviceObject, + OUT PUNICODE_STRING DosName + ); + +ULONG +STDCALL +RtlWalkFrameChain ( + OUT PVOID *Callers, + IN ULONG Count, + IN ULONG Flags + ); + ULONG STDCALL RtlxAnsiStringToUnicodeSize ( @@ -2463,3 +3042,5 @@ int wctomb (char *mbchar, wchar_t wchar); #endif /* __NTOSKRNL__ || __NTDRIVER__ || __NTHAL__ || __NTDLL__ || __NTAPP__ */ #endif /* __DDK_RTL_H */ + + diff --git a/reactos/include/ntos/rtltypes.h b/reactos/include/ntos/rtltypes.h index 0fc39f8d0af..22498327e9b 100755 --- a/reactos/include/ntos/rtltypes.h +++ b/reactos/include/ntos/rtltypes.h @@ -1,4 +1,4 @@ -/* $Id: rtltypes.h,v 1.14 2004/05/17 13:20:05 ekohl Exp $ +/* $Id: rtltypes.h,v 1.15 2004/08/05 18:17:36 ion Exp $ * */ @@ -14,6 +14,31 @@ #define COMPRESSION_ENGINE_STANDARD 0x0000 #define COMPRESSION_ENGINE_MAXIMUM 0x0100 #define COMPRESSION_ENGINE_HIBER 0x0200 +/* +#define VER_EQUAL 1 +#define VER_GREATER 2 +#define VER_GREATER_EQUAL 3 +#define VER_LESS 4 +#define VER_LESS_EQUAL 5 +#define VER_AND 6 +#define VER_OR 7 + +#define VER_CONDITION_MASK 7 +#define VER_NUM_BITS_PER_CONDITION_MASK 3 + +#define VER_MINORVERSION 0x0000001 +#define VER_MAJORVERSION 0x0000002 +#define VER_BUILDNUMBER 0x0000004 +#define VER_PLATFORMID 0x0000008 +#define VER_SERVICEPACKMINOR 0x0000010 +#define VER_SERVICEPACKMAJOR 0x0000020 +#define VER_SUITENAME 0x0000040 +#define VER_PRODUCT_TYPE 0x0000080 + +#define VER_NT_WORKSTATION 0x0000001 +#define VER_NT_DOMAIN_CONTROLLER 0x0000002 +#define VER_NT_SERVER 0x0000003 +*/ typedef struct _CONTROLLER_OBJECT { @@ -238,23 +263,36 @@ typedef struct _NLS_FILE_HEADER } NLS_FILE_HEADER, *PNLS_FILE_HEADER; #include +/* +typedef struct _OSVERSIONINFOEXA { + ULONG dwOSVersionInfoSize; + ULONG dwMajorVersion; + ULONG dwMinorVersion; + ULONG dwBuildNumber; + ULONG dwPlatformId; + CHAR szCSDVersion [128]; + USHORT wServicePackMajor; + USHORT wServicePackMinor; + USHORT wSuiteMask; + UCHAR wProductType; + UCHAR wReserved; +} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; +typedef struct _OSVERSIONINFOEXW { + ULONG dwOSVersionInfoSize; + ULONG dwMajorVersion; + ULONG dwMinorVersion; + ULONG dwBuildNumber; + ULONG dwPlatformId; + WCHAR szCSDVersion[128]; + USHORT wServicePackMajor; + USHORT wServicePackMinor; + USHORT wSuiteMask; + UCHAR wProductType; + UCHAR wReserved; +} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; -typedef struct _RTL_GENERIC_TABLE -{ - PVOID RootElement; - ULONG Unknown2; - ULONG Unknown3; - ULONG Unknown4; - ULONG Unknown5; - ULONG ElementCount; - PVOID CompareRoutine; - PVOID AllocateRoutine; - PVOID FreeRoutine; - ULONG UserParameter; -} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE; - - +*/ typedef struct _RTL_MESSAGE_RESOURCE_ENTRY { USHORT Length; @@ -279,4 +317,132 @@ typedef VOID (STDCALL *PRTL_BASE_PROCESS_START_ROUTINE)(PTHREAD_START_ROUTINE StartAddress, PVOID Parameter); + +typedef struct _UNICODE_PREFIX_TABLE_ENTRY { + USHORT NodeTypeCode; + USHORT NameLength; + struct _UNICODE_PREFIX_TABLE_ENTRY *NextPrefixTree; + struct _UNICODE_PREFIX_TABLE_ENTRY *CaseMatch; + RTL_SPLAY_LINKS Links; + PUNICODE_STRING Prefix; +} UNICODE_PREFIX_TABLE_ENTRY; +typedef UNICODE_PREFIX_TABLE_ENTRY *PUNICODE_PREFIX_TABLE_ENTRY; + +typedef struct _UNICODE_PREFIX_TABLE { + USHORT NodeTypeCode; + USHORT NameLength; + PUNICODE_PREFIX_TABLE_ENTRY NextPrefixTree; + PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry; +} UNICODE_PREFIX_TABLE; +typedef UNICODE_PREFIX_TABLE *PUNICODE_PREFIX_TABLE; + +typedef enum _TABLE_SEARCH_RESULT{ + TableEmptyTree, + TableFoundNode, + TableInsertAsLeft, + TableInsertAsRight +} TABLE_SEARCH_RESULT; + + +typedef enum _RTL_GENERIC_COMPARE_RESULTS { + GenericLessThan, + GenericGreaterThan, + GenericEqual +} RTL_GENERIC_COMPARE_RESULTS; + +struct _RTL_AVL_TABLE; + +typedef +RTL_GENERIC_COMPARE_RESULTS +(STDCALL *PRTL_AVL_COMPARE_ROUTINE) ( + struct _RTL_AVL_TABLE *Table, + PVOID FirstStruct, + PVOID SecondStruct + ); + +typedef +PVOID +(STDCALL *PRTL_AVL_ALLOCATE_ROUTINE) ( + struct _RTL_AVL_TABLE *Table, + ULONG ByteSize + ); + +typedef +VOID +(STDCALL *PRTL_AVL_FREE_ROUTINE) ( + struct _RTL_AVL_TABLE *Table, + PVOID Buffer + ); + +typedef +NTSTATUS +(STDCALL *PRTL_AVL_MATCH_FUNCTION) ( + struct _RTL_AVL_TABLE *Table, + PVOID UserData, + PVOID MatchData + ); + +typedef struct _RTL_BALANCED_LINKS { + struct _RTL_BALANCED_LINKS *Parent; + struct _RTL_BALANCED_LINKS *LeftChild; + struct _RTL_BALANCED_LINKS *RightChild; + CHAR Balance; + UCHAR Reserved[3]; +} RTL_BALANCED_LINKS; + +typedef RTL_BALANCED_LINKS *PRTL_BALANCED_LINKS; + +typedef struct _RTL_AVL_TABLE { + RTL_BALANCED_LINKS BalancedRoot; + PVOID OrderedPointer; + ULONG WhichOrderedElement; + ULONG NumberGenericTableElements; + ULONG DepthOfTree; + PRTL_BALANCED_LINKS RestartKey; + ULONG DeleteCount; + PRTL_AVL_COMPARE_ROUTINE CompareRoutine; + PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine; + PRTL_AVL_FREE_ROUTINE FreeRoutine; + PVOID TableContext; +} RTL_AVL_TABLE; +typedef RTL_AVL_TABLE *PRTL_AVL_TABLE; + +struct _RTL_GENERIC_TABLE; + +typedef +RTL_GENERIC_COMPARE_RESULTS +(STDCALL *PRTL_GENERIC_COMPARE_ROUTINE) ( + struct _RTL_GENERIC_TABLE *Table, + PVOID FirstStruct, + PVOID SecondStruct + ); + +typedef +PVOID +(STDCALL *PRTL_GENERIC_ALLOCATE_ROUTINE) ( + struct _RTL_GENERIC_TABLE *Table, + ULONG ByteSize + ); + +typedef +VOID +(STDCALL *PRTL_GENERIC_FREE_ROUTINE) ( + struct _RTL_GENERIC_TABLE *Table, + PVOID Buffer + ); + + +typedef struct _RTL_GENERIC_TABLE { + PRTL_SPLAY_LINKS TableRoot; + LIST_ENTRY InsertOrderList; + PLIST_ENTRY OrderedPointer; + ULONG WhichOrderedElement; + ULONG NumberGenericTableElements; + PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine; + PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine; + PRTL_GENERIC_FREE_ROUTINE FreeRoutine; + PVOID TableContext; +} RTL_GENERIC_TABLE; +typedef RTL_GENERIC_TABLE *PRTL_GENERIC_TABLE; + #endif /* __DDK_RTLTYPES_H */ diff --git a/reactos/lib/ntdll/rtl/misc.c b/reactos/lib/ntdll/rtl/misc.c index 52055b06f00..5dfcb3b5169 100644 --- a/reactos/lib/ntdll/rtl/misc.c +++ b/reactos/lib/ntdll/rtl/misc.c @@ -1,4 +1,4 @@ -/* $Id: misc.c,v 1.9 2003/11/17 20:35:46 sedwards Exp $ +/* $Id: misc.c,v 1.10 2004/08/05 18:17:36 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -15,36 +15,6 @@ #include #include -/* GLOBALS ******************************************************************/ - -extern ULONG NtGlobalFlag; - -/* FUNCTIONS ****************************************************************/ - -/********************************************************************** - * NAME EXPORTED - * RtlGetNtGlobalFlags - * - * DESCRIPTION - * Retrieves the global os flags. - * - * ARGUMENTS - * None - * - * RETURN VALUE - * global flags - * - * REVISIONS - * 2000-08-10 ekohl - */ - -ULONG STDCALL -RtlGetNtGlobalFlags(VOID) -{ - return(NtGlobalFlag); -} - - /********************************************************************** * NAME EXPORTED * RtlGetNtProductType diff --git a/reactos/lib/rtl/bootdata.c b/reactos/lib/rtl/bootdata.c new file mode 100644 index 00000000000..b69b40e1e6e --- /dev/null +++ b/reactos/lib/rtl/bootdata.c @@ -0,0 +1,91 @@ +/* + * ReactOS kernel + * Copyright (C) 2003 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $Id: bootdata.c,v 1.1 2004/08/05 18:17:37 ion Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Boot Data implementation + * FILE: lib/rtl/bootdata.c + */ + +#include + +#define NDEBUG +#include + +/* FUNCTIONS *****************************************************************/ + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlCreateSystemVolumeInformationFolder( + IN PUNICODE_STRING VolumeRootPath + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlGetSetBootStatusData( + HANDLE Filehandle, + BOOLEAN WriteMode, + DWORD DataClass, + PVOID Buffer, + ULONG BufferSize, + DWORD DataClass2 + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlLockBootStatusData( + HANDLE Filehandle + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlUnlockBootStatusData( + HANDLE Filehandle + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* EOF */ diff --git a/reactos/lib/rtl/dos8dot3.c b/reactos/lib/rtl/dos8dot3.c index 5bd64ca338b..eb75a2fc396 100644 --- a/reactos/lib/rtl/dos8dot3.c +++ b/reactos/lib/rtl/dos8dot3.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: dos8dot3.c,v 1.1 2004/05/31 19:29:02 gdalsnes Exp $ +/* $Id: dos8dot3.c,v 1.2 2004/08/05 18:17:36 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -333,4 +333,18 @@ RtlIsNameLegalDOS8Dot3(IN PUNICODE_STRING UnicodeName, return(TRUE); } +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlVolumeDeviceToDosName( + IN PVOID VolumeDeviceObject, + OUT PUNICODE_STRING DosName + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + /* EOF */ diff --git a/reactos/lib/rtl/error.c b/reactos/lib/rtl/error.c index 2fadaa214b6..916d0b9cfe2 100644 --- a/reactos/lib/rtl/error.c +++ b/reactos/lib/rtl/error.c @@ -1,4 +1,4 @@ -/* $Id: error.c,v 1.1 2004/05/31 19:29:02 gdalsnes Exp $ +/* $Id: error.c,v 1.2 2004/08/05 18:17:36 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -862,6 +862,18 @@ RtlAssert(PVOID FailedAssertion, DbgBreakPoint(); } +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlMapSecurityErrorToNtStatus( + IN ULONG SecurityError + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} /********************************************************************** * NAME EXPORTED diff --git a/reactos/lib/rtl/exception.c b/reactos/lib/rtl/exception.c index cffc56a92e7..ba7cd4d8451 100644 --- a/reactos/lib/rtl/exception.c +++ b/reactos/lib/rtl/exception.c @@ -1,4 +1,4 @@ -/* $Id: exception.c,v 1.1 2004/06/24 19:30:21 hyperion Exp $ +/* $Id: exception.c,v 1.2 2004/08/05 18:17:36 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -29,6 +29,33 @@ VOID RtlpCaptureContext(PCONTEXT Context); +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlDispatchException( + PEXCEPTION_RECORD pExcptRec, + CONTEXT * pContext + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +VOID +STDCALL +RtlGetCallersAddress( + OUT PVOID *CallersAddress, + OUT PVOID *CallersCaller + ) +{ + UNIMPLEMENTED; +} + /* * @implemented */ @@ -45,9 +72,10 @@ RtlRaiseException(PEXCEPTION_RECORD ExceptionRecord) Status = ZwRaiseException(ExceptionRecord, &Context, TRUE); RtlRaiseException(ExceptionRecord); - RtlRaiseStatus(Status); /* If we get to this point, something is seriously wrong... */ + RtlRaiseStatus(Status); } + /* * @implemented */ @@ -65,4 +93,20 @@ RtlRaiseStatus(NTSTATUS Status) RtlRaiseException (& ExceptionRecord); } +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlWalkFrameChain ( + OUT PVOID *Callers, + IN ULONG Count, + IN ULONG Flags + ) +{ + UNIMPLEMENTED; + return 0; +} + + /* EOF */ diff --git a/reactos/lib/rtl/generictbl.c b/reactos/lib/rtl/generictbl.c new file mode 100644 index 00000000000..a5fcd8d70ac --- /dev/null +++ b/reactos/lib/rtl/generictbl.c @@ -0,0 +1,379 @@ +/* + * ReactOS kernel + * Copyright (C) 2003 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $Id: generictbl.c,v 1.1 2004/08/05 18:17:37 ion Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Generic Table Implementation + * FILE: lib/rtl/genertictbl.c + */ + +#include + +#define NDEBUG +#include +/* FUNCTIONS *****************************************************************/ + +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlDeleteElementGenericTable ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlDeleteElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlEnumerateGenericTable ( + PRTL_GENERIC_TABLE Table, + BOOLEAN Restart + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlEnumerateGenericTableAvl ( + PRTL_AVL_TABLE Table, + BOOLEAN Restart + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlEnumerateGenericTableLikeADirectory ( + IN PRTL_AVL_TABLE Table, + IN PRTL_AVL_MATCH_FUNCTION MatchFunction, + IN PVOID MatchData, + IN ULONG NextFlag, + IN OUT PVOID *RestartKey, + IN OUT PULONG DeleteCount, + IN OUT PVOID Buffer + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlEnumerateGenericTableWithoutSplaying ( + PRTL_GENERIC_TABLE Table, + PVOID *RestartKey + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlEnumerateGenericTableWithoutSplayingAvl ( + PRTL_AVL_TABLE Table, + PVOID *RestartKey + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlGetElementGenericTable( + PRTL_GENERIC_TABLE Table, + ULONG I + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlGetElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + ULONG I + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +VOID +STDCALL +RtlInitializeGenericTable ( + PRTL_GENERIC_TABLE Table, + PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine, + PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine, + PRTL_GENERIC_FREE_ROUTINE FreeRoutine, + PVOID TableContext + ) +{ + UNIMPLEMENTED; +} + +/* +* @unimplemented +*/ +VOID +STDCALL +RtlInitializeGenericTableAvl ( + PRTL_AVL_TABLE Table, + PRTL_AVL_COMPARE_ROUTINE CompareRoutine, + PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine, + PRTL_AVL_FREE_ROUTINE FreeRoutine, + PVOID TableContext + ) +{ + UNIMPLEMENTED; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlInsertElementGenericTable ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlInsertElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlInsertElementGenericTableFull ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL, + PVOID NodeOrParent, + TABLE_SEARCH_RESULT SearchResult + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlInsertElementGenericTableFullAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer, + ULONG BufferSize, + PBOOLEAN NewElement OPTIONAL, + PVOID NodeOrParent, + TABLE_SEARCH_RESULT SearchResult + ) +{ + UNIMPLEMENTED; + return 0; +} + + +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlIsGenericTableEmpty ( + PRTL_GENERIC_TABLE Table + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlIsGenericTableEmptyAvl ( + PRTL_AVL_TABLE Table + ) +{ + UNIMPLEMENTED; + return FALSE; +} + + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlLookupElementGenericTable ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlLookupElementGenericTableAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlLookupElementGenericTableFull ( + PRTL_GENERIC_TABLE Table, + PVOID Buffer, + OUT PVOID *NodeOrParent, + OUT TABLE_SEARCH_RESULT *SearchResult + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PVOID +STDCALL +RtlLookupElementGenericTableFullAvl ( + PRTL_AVL_TABLE Table, + PVOID Buffer, + OUT PVOID *NodeOrParent, + OUT TABLE_SEARCH_RESULT *SearchResult + ) +{ + UNIMPLEMENTED; + return 0; +} + + +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlNumberGenericTableElements( + PRTL_GENERIC_TABLE Table + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlNumberGenericTableElementsAvl ( + PRTL_AVL_TABLE Table + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* EOF */ diff --git a/reactos/lib/rtl/makefile b/reactos/lib/rtl/makefile index c2a5e6a41e2..57b587d8b11 100644 --- a/reactos/lib/rtl/makefile +++ b/reactos/lib/rtl/makefile @@ -14,14 +14,17 @@ TARGET_CFLAGS += -D_DISABLE_TIDENTS TARGET_OBJECTS = \ acl.o \ + bootdata.o \ compress.o \ dos8dot3.o \ env.o \ error.o \ heap.o \ + generictbl.o \ largeint.o \ luid.o \ mem.o \ + network.o \ nls.o \ random.o \ sd.o \ @@ -34,6 +37,7 @@ TARGET_OBJECTS = \ encode.o \ image.o \ splaytree.o \ + unicodeprfx.o \ exception.o \ i386/exception.o \ i386/except.o diff --git a/reactos/lib/rtl/mem.c b/reactos/lib/rtl/mem.c index a87a87ad337..6ab9ed948c2 100644 --- a/reactos/lib/rtl/mem.c +++ b/reactos/lib/rtl/mem.c @@ -1,5 +1,5 @@ -/* $Id: mem.c,v 1.1 2004/05/31 19:29:02 gdalsnes Exp $ +/* $Id: mem.c,v 1.2 2004/08/05 18:17:36 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -144,6 +144,18 @@ RtlMoveMemory ( ); } +/* +* @unimplemented +*/ +VOID +FASTCALL +RtlPrefetchMemoryNonTemporal( + IN PVOID Source, + IN SIZE_T Length + ) +{ + UNIMPLEMENTED; +} /* * @implemented diff --git a/reactos/lib/rtl/network.c b/reactos/lib/rtl/network.c new file mode 100644 index 00000000000..021436685ae --- /dev/null +++ b/reactos/lib/rtl/network.c @@ -0,0 +1,282 @@ +/* + * ReactOS kernel + * Copyright (C) 2003 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $Id: network.c,v 1.1 2004/08/05 18:17:37 ion Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Network Address Translation implementation + * FILE: lib/rtl/network.c + */ + +#include + +#define NDEBUG +#include +/* FUNCTIONS *****************************************************************/ + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4AddressToStringA( + PULONG IP, + LPSTR Buffer + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4AddressToStringExA( + PULONG IP, + PULONG Port, + LPSTR Buffer, + PULONG MaxSize + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4AddressToStringW( + PULONG IP, + LPWSTR Buffer + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4AddressToStringExW( + PULONG IP, + PULONG Port, + LPWSTR Buffer, + PULONG MaxSize + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4StringToAddressA( + IN LPSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4StringToAddressExA( + IN LPSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4StringToAddressW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv4StringToAddressExW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6AddressToStringA( + PULONG IP, + LPSTR Buffer + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6AddressToStringExA( + PULONG IP, + PULONG Port, + LPSTR Buffer, + PULONG MaxSize + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6AddressToStringW( + PULONG IP, + LPWSTR Buffer + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6AddressToStringExW( + PULONG IP, + PULONG Port, + LPWSTR Buffer, + PULONG MaxSize + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6StringToAddressA( + IN LPSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6StringToAddressExA( + IN LPSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6StringToAddressW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PVOID PtrToIpAddr, + OUT ULONG IpAddr + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlIpv6StringToAddressExW( + IN LPWSTR IpString, + IN ULONG Base, + OUT PULONG IpAddr, + OUT PULONG Port + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + + +/* EOF */ diff --git a/reactos/lib/rtl/random.c b/reactos/lib/rtl/random.c index 9c34bbea847..de79f49cc4c 100644 --- a/reactos/lib/rtl/random.c +++ b/reactos/lib/rtl/random.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: random.c,v 1.1 2004/05/31 19:29:02 gdalsnes Exp $ +/* $Id: random.c,v 1.2 2004/08/05 18:17:37 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -26,11 +26,12 @@ /* INCLUDES *****************************************************************/ -#define NTOS_MODE_USER -#include +#include -//#include +#define NDEBUG +#include +#define MAXLONG (0x7fffffff) static ULONG SavedValue[128] = { @@ -96,6 +97,19 @@ RtlRandom (IN OUT PULONG Seed) return Result; } +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlRandomEx( + PULONG Seed + ) +{ + UNIMPLEMENTED; + return 0; +} + /************************************************************************* diff --git a/reactos/lib/rtl/sd.c b/reactos/lib/rtl/sd.c index a7cce3c9288..a0999a4bb98 100644 --- a/reactos/lib/rtl/sd.c +++ b/reactos/lib/rtl/sd.c @@ -1,4 +1,4 @@ -/* $Id: sd.c,v 1.1 2004/05/31 19:29:02 gdalsnes Exp $ +/* $Id: sd.c,v 1.2 2004/08/05 18:17:37 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -750,4 +750,35 @@ RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR RelSD, return STATUS_SUCCESS; } +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlSelfRelativeToAbsoluteSD2( + PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor, + PULONG BufferSize + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} + +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlValidRelativeSecurityDescriptor ( + IN PSECURITY_DESCRIPTOR SecurityDescriptorInput, + IN ULONG SecurityDescriptorLength, + IN SECURITY_INFORMATION RequiredInformation + ) +{ + UNIMPLEMENTED; + return FALSE; +} + + + /* EOF */ diff --git a/reactos/lib/rtl/splaytree.c b/reactos/lib/rtl/splaytree.c index 49d738b3af3..5e2e22351b7 100644 --- a/reactos/lib/rtl/splaytree.c +++ b/reactos/lib/rtl/splaytree.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: splaytree.c,v 1.1 2004/06/20 23:27:21 gdalsnes Exp $ +/* $Id: splaytree.c,v 1.2 2004/08/05 18:17:37 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -26,8 +26,82 @@ #include +#define NDEBUG +#include + + /* FUNCTIONS *****************************************************************/ +/* +* @unimplemented +*/ +PRTL_SPLAY_LINKS +STDCALL +RtlDelete ( + PRTL_SPLAY_LINKS Links + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +VOID +STDCALL +RtlDeleteNoSplay ( + PRTL_SPLAY_LINKS Links, + PRTL_SPLAY_LINKS *Root + ) +{ + UNIMPLEMENTED; +} + + +/* +* @unimplemented +*/ +PRTL_SPLAY_LINKS +STDCALL +RtlRealPredecessor ( + PRTL_SPLAY_LINKS Links + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PRTL_SPLAY_LINKS +STDCALL +RtlRealSuccessor ( + PRTL_SPLAY_LINKS Links + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +PRTL_SPLAY_LINKS +STDCALL +RtlSplay ( + PRTL_SPLAY_LINKS Links + ) +{ + UNIMPLEMENTED; + return 0; +} + + +/* +* @implemented +*/ PRTL_SPLAY_LINKS STDCALL RtlSubtreePredecessor (IN PRTL_SPLAY_LINKS Links) { @@ -47,7 +121,9 @@ RtlSubtreePredecessor (IN PRTL_SPLAY_LINKS Links) return Child; } - +/* +* @implemented +*/ PRTL_SPLAY_LINKS STDCALL RtlSubtreeSuccessor (IN PRTL_SPLAY_LINKS Links) { diff --git a/reactos/lib/rtl/unicode.c b/reactos/lib/rtl/unicode.c index 5f85743bbec..77b15219beb 100644 --- a/reactos/lib/rtl/unicode.c +++ b/reactos/lib/rtl/unicode.c @@ -393,6 +393,18 @@ RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString) UnicodeString->MaximumLength = 0; } +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlIsValidOemCharacter ( + IN PWCHAR Char + ) +{ + UNIMPLEMENTED; + return FALSE; +} /* * @implemented @@ -483,7 +495,20 @@ RtlInitUnicodeString(IN OUT PUNICODE_STRING DestinationString, DestinationString->Buffer = (PWSTR)SourceString; } - +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlInt64ToUnicodeString ( + IN ULONGLONG Value, + IN ULONG Base OPTIONAL, + IN OUT PUNICODE_STRING String + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} /* * @implemented @@ -1406,19 +1431,6 @@ RtlGUIDFromString( return STATUS_SUCCESS; } - -/* - * @unimplemented - */ -NTSTATUS STDCALL -RtlInt64ToUnicodeString (IN ULONGLONG Value, - IN ULONG Base, - OUT PUNICODE_STRING String) -{ - return STATUS_NOT_IMPLEMENTED; -} - - /* * @implemented */ @@ -1440,7 +1452,21 @@ RtlEraseUnicodeString( String->Length = 0; } - +/* +* @unimplemented +*/ +NTSTATUS +STDCALL +RtlHashUnicodeString( + IN const UNICODE_STRING *String, + IN BOOLEAN CaseInSensitive, + IN ULONG HashAlgorithm, + OUT PULONG HashValue + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} /* * @implemented diff --git a/reactos/lib/rtl/unicodeprfx.c b/reactos/lib/rtl/unicodeprfx.c new file mode 100644 index 00000000000..efab6bf8a77 --- /dev/null +++ b/reactos/lib/rtl/unicodeprfx.c @@ -0,0 +1,103 @@ +/* + * ReactOS kernel + * Copyright (C) 2003 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $Id: unicodeprfx.c,v 1.1 2004/08/05 18:17:37 ion Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * PURPOSE: Unicode Prefix implementation + * FILE: lib/rtl/unicodeprfx.c + */ + +#include + +#define NDEBUG +#include + +/* FUNCTIONS *****************************************************************/ + +/* +* @unimplemented +*/ +PUNICODE_PREFIX_TABLE_ENTRY +STDCALL +RtlFindUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + PUNICODE_STRING FullName, + ULONG CaseInsensitiveIndex + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +VOID +STDCALL +RtlInitializeUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable + ) +{ + UNIMPLEMENTED; +} + +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlInsertUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + PUNICODE_STRING Prefix, + PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry + ) +{ + UNIMPLEMENTED; + return FALSE; +} + +/* +* @unimplemented +*/ +PUNICODE_PREFIX_TABLE_ENTRY +STDCALL +RtlNextUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + BOOLEAN Restart + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +VOID +STDCALL +RtlRemoveUnicodePrefix ( + PUNICODE_PREFIX_TABLE PrefixTable, + PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry + ) +{ + UNIMPLEMENTED; +} + +/* EOF */ diff --git a/reactos/lib/rtl/version.c b/reactos/lib/rtl/version.c index 25604dece92..8a5f2441ed0 100644 --- a/reactos/lib/rtl/version.c +++ b/reactos/lib/rtl/version.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: version.c,v 1.1 2004/05/31 19:29:02 gdalsnes Exp $ +/* $Id: version.c,v 1.2 2004/08/05 18:17:37 ion Exp $ * * PROJECT: ReactOS kernel * PURPOSE: Runtime code @@ -34,6 +34,9 @@ #define NDEBUG #include +/* GLOBALS ******************************************************************/ + +extern ULONG NtGlobalFlag; /* FUNCTIONS ****************************************************************/ @@ -65,4 +68,31 @@ RtlGetVersion(RTL_OSVERSIONINFOW *Info) return STATUS_INVALID_PARAMETER; } +/* +* @implemented +*/ +ULONG +STDCALL +RtlGetNtGlobalFlags(VOID) +{ + return(NtGlobalFlag); +} + +/* +* @unimplemented +*/ +/* +NTSTATUS +STDCALL +RtlVerifyVersionInfo( + IN PRTL_OSVERSIONINFOEXW VersionInfo, + IN ULONG TypeMask, + IN ULONGLONG ConditionMask + ) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +} +*/ + /* EOF */ diff --git a/reactos/ntoskrnl/include/internal/i386/ke.h b/reactos/ntoskrnl/include/internal/i386/ke.h index 93d31c2ff03..6285d6ef556 100644 --- a/reactos/ntoskrnl/include/internal/i386/ke.h +++ b/reactos/ntoskrnl/include/internal/i386/ke.h @@ -135,6 +135,7 @@ VOID KeFreeGdtSelector(ULONG Entry); VOID NtEarlyInitVdm(VOID); + #if defined(__GNUC__) #define Ke386DisableInterrupts() __asm__("cli\n\t"); #define Ke386EnableInterrupts() __asm__("sti\n\t"); diff --git a/reactos/ntoskrnl/ke/apc.c b/reactos/ntoskrnl/ke/apc.c index 3f9e9c79c13..6f7f894b463 100644 --- a/reactos/ntoskrnl/ke/apc.c +++ b/reactos/ntoskrnl/ke/apc.c @@ -562,12 +562,15 @@ NtQueueApcThread(HANDLE ThreadHandle, PKAPC Apc; PETHREAD Thread; NTSTATUS Status; + PVOID ThreadVar; + + ThreadVar = &Thread; Status = ObReferenceObjectByHandle(ThreadHandle, THREAD_ALL_ACCESS, /* FIXME */ PsThreadType, UserMode, - (PVOID*)&Thread, + &ThreadVar, NULL); if (!NT_SUCCESS(Status)) { diff --git a/reactos/ntoskrnl/ke/catch.c b/reactos/ntoskrnl/ke/catch.c index 8702c0a4c1d..610f8b0a24e 100644 --- a/reactos/ntoskrnl/ke/catch.c +++ b/reactos/ntoskrnl/ke/catch.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: catch.c,v 1.45 2004/07/02 12:43:38 royce Exp $ +/* $Id: catch.c,v 1.46 2004/08/05 18:17:37 ion Exp $ * * PROJECT: ReactOS kernel * FILE: ntoskrnl/ke/catch.c @@ -298,13 +298,4 @@ KeRegisterBugCheckReasonCallback( return FALSE; } -/* - * @implemented - */ -VOID STDCALL -RtlRaiseException(PEXCEPTION_RECORD ExceptionRecord) -{ - ZwRaiseException(ExceptionRecord, NULL, TRUE); -} - /* EOF */ diff --git a/reactos/ntoskrnl/ntoskrnl.edf b/reactos/ntoskrnl/ntoskrnl.edf index f853ba35886..b19545d1d6a 100644 --- a/reactos/ntoskrnl/ntoskrnl.edf +++ b/reactos/ntoskrnl/ntoskrnl.edf @@ -1,4 +1,4 @@ -; $Id: ntoskrnl.edf,v 1.174 2004/08/04 12:11:45 ekohl Exp $ +; $Id: ntoskrnl.edf,v 1.175 2004/08/05 18:17:37 ion Exp $ ; ; reactos/ntoskrnl/ntoskrnl.def ; @@ -763,6 +763,78 @@ READ_REGISTER_BUFFER_ULONG=READ_REGISTER_BUFFER_ULONG@12 READ_REGISTER_BUFFER_USHORT=READ_REGISTER_BUFFER_USHORT@12 KeRosPrintAddress=KeRosPrintAddress@4 KeRosDumpStackFrames=KeRosDumpStackFrames@8 +RtlAddAccessAllowedAceEx=RtlAddAccessAllowedAceEx@20 +RtlAllocateHeap=RtlAllocateHeap@12 +RtlCaptureContext=RtlCaptureContext@4 +RtlCaptureStackBackTrace=RtlCaptureStackBackTrace@16 +RtlClearBit=RtlClearBit@8 +RtlCreateHeap=RtlCreateHeap@24 +RtlCreateSystemVolumeInformationFolder=RtlCreateSystemVolumeInformationFolder@4 +RtlDelete=RtlDelete@4 +RtlDeleteAce=RtlDeleteAce@8 +RtlDeleteElementGenericTable=RtlDeleteElementGenericTable@8 +RtlDeleteElementGenericTableAvl=RtlDeleteElementGenericTableAvl@8 +RtlDeleteNoSplay=RtlDeleteNoSplay@8 +RtlDestroyHeap=RtlDestroyHeap@4 +RtlDispatchException=RtlDispatchException@8 +RtlEnumerateGenericTable=RtlEnumerateGenericTable@8 +RtlEnumerateGenericTableAvl=RtlEnumerateGenericTableAvl@8 +RtlEnumerateGenericTableLikeADirectory=RtlEnumerateGenericTableLikeADirectory@28 +RtlEnumerateGenericTableWithoutSplaying=RtlEnumerateGenericTableWithoutSplaying@8 +RtlEnumerateGenericTableWithoutSplayingAvl=RtlEnumerateGenericTableWithoutSplayingAvl@8 +RtlFindClearRuns=RtlFindClearRuns@16 +RtlFindLastBackwardRunClear=RtlFindLastBackwardRunClear@12 +RtlFindNextForwardRunClear=RtlFindNextForwardRunClear@12 +RtlFindUnicodePrefix=RtlFindUnicodePrefix@12 +RtlFreeHeap=RtlFreeHeap@12 +RtlGetAce=RtlGetAce@12 +RtlGetCallersAddress=RtlGetCallersAddress@8 +RtlGetElementGenericTableAvl=RtlGetElementGenericTableAvl@8 +RtlGetNtGlobalFlags=RtlGetNtGlobalFlags@0 +RtlGetSaclSecurityDescriptor=RtlGetSaclSecurityDescriptor@16 +RtlGUIDFromString=RtlGUIDFromString@8 +RtlHashUnicodeString=RtlHashUnicodeString@16 +RtlInitializeGenericTableAvl=RtlInitializeGenericTableAvl@20 +RtlInitializeUnicodePrefix=RtlInitializeUnicodePrefix@4 +RtlInsertElementGenericTableAvl=RtlInsertElementGenericTableAvl@16 +RtlInsertElementGenericTableFull=RtlInsertElementGenericTableFull@24 +RtlInsertElementGenericTableFullAvl=RtlInsertElementGenericTableFullAvl@24 +RtlInsertUnicodePrefix=RtlInsertUnicodePrefix@12 +RtlInt64ToUnicodeString=RtlInt64ToUnicodeString@16 +RtlIsGenericTableEmpty=RtlIsGenericTableEmpty@4 +RtlIsGenericTableEmptyAvl=RtlIsGenericTableEmptyAvl@4 +RtlIsValidOemCharacter=RtlIsValidOemCharacter@4 +RtlLookupElementGenericTable=RtlLookupElementGenericTable@8 +RtlLookupElementGenericTableAvl=RtlLookupElementGenericTableAvl@8 +RtlLookupElementGenericTableFull=RtlLookupElementGenericTableFull@16 +RtlLookupElementGenericTableFullAvl=RtlLookupElementGenericTableFullAvl@16 +RtlNextUnicodePrefix=RtlNextUnicodePrefix@8 +RtlNumberGenericTableElements=RtlNumberGenericTableElements@4 +RtlNumberGenericTableElementsAvl=RtlNumberGenericTableElementsAvl@4 +RtlOemToUnicodeN=RtlOemToUnicodeN@20 +@RtlPrefetchMemoryNonTemporal=@RtlPrefetchMemoryNonTemporal@8 +RtlRandomEx=RtlRandomEx@4 +RtlRealPredecessor=RtlRealPredecessor@4 +RtlRealSuccessor=RtlRealSuccessor@4 +RtlRemoveUnicodePrefix=RtlRemoveUnicodePrefix@8 +RtlSelfRelativeToAbsoluteSD=RtlSelfRelativeToAbsoluteSD@44 +RtlSetBit=RtlSetBit@8 +RtlSizeHeap=RtlSizeHeap@12 +RtlSplay=RtlSplay@4 +RtlStringFromGUID=RtlStringFromGUID@8 +RtlSubtreePredecessor=RtlSubtreePredecessor@4 +RtlSubtreeSuccessor=RtlSubtreeSuccessor@4 +RtlTestBit=RtlTestBit@8 +RtlTimeToElapsedTimeFields=RtlTimeToElapsedTimeFields@8 +RtlValidRelativeSecurityDescriptor=RtlValidRelativeSecurityDescriptor@12 +;RtlVerifyVersionInfo=RtlVerifyVersionInfo@16 +RtlVolumeDeviceToDosName=RtlVolumeDeviceToDosName@8 +RtlWalkFrameChain=RtlWalkFrameChain@12 +RtlGetSetBootStatusData=RtlGetSetBootStatusData@24 +RtlLockBootStatusData=RtlLockBootStatusData@4 +RtlUnlockBootStatusData=RtlUnlockBootStatusData@4 +RtlSelfRelativeToAbsoluteSD2=RtlSelfRelativeToAbsoluteSD2@8 +RtlMapSecurityErrorToNtStatus=RtlMapSecurityErrorToNtStatus@4 RtlAbsoluteToSelfRelativeSD=RtlAbsoluteToSelfRelativeSD@12 RtlAddAccessAllowedAce=RtlAddAccessAllowedAce@16 RtlAddAce=RtlAddAce@20 diff --git a/reactos/ntoskrnl/rtl/bitmap.c b/reactos/ntoskrnl/rtl/bitmap.c index 738787c35fb..25d1a15ab4d 100644 --- a/reactos/ntoskrnl/rtl/bitmap.c +++ b/reactos/ntoskrnl/rtl/bitmap.c @@ -1,4 +1,4 @@ -/* $Id: bitmap.c,v 1.9 2003/07/11 01:23:15 royce Exp $ +/* $Id: bitmap.c,v 1.10 2004/08/05 18:17:37 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -10,6 +10,8 @@ #include +#define NDEBUG +#include #define ALIGN(x,align) (((x)+(align)-1) / (align)) @@ -130,6 +132,18 @@ RtlClearAllBits ( ALIGN(BitMapHeader->SizeOfBitMap, 8)); } +/* +* @unimplemented +*/ +VOID +STDCALL +RtlClearBit ( + PRTL_BITMAP BitMapHeader, + ULONG BitNumber + ) +{ + UNIMPLEMENTED; +} /* * @implemented @@ -315,6 +329,51 @@ RtlFindFirstRunClear ( return Count; } +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlFindClearRuns ( + PRTL_BITMAP BitMapHeader, + PRTL_BITMAP_RUN RunArray, + ULONG SizeOfRunArray, + BOOLEAN LocateLongestRuns + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlFindLastBackwardRunClear ( + IN PRTL_BITMAP BitMapHeader, + IN ULONG FromIndex, + IN PULONG StartingRunIndex + ) +{ + UNIMPLEMENTED; + return 0; +} + +/* +* @unimplemented +*/ +ULONG +STDCALL +RtlFindNextForwardRunClear ( + IN PRTL_BITMAP BitMapHeader, + IN ULONG FromIndex, + IN PULONG StartingRunIndex + ) +{ + UNIMPLEMENTED; + return 0; +} ULONG STDCALL @@ -654,6 +713,18 @@ RtlSetAllBits ( ALIGN(BitMapHeader->SizeOfBitMap, 8)); } +/* +* @unimplemented +*/ +VOID +STDCALL +RtlSetBit ( + PRTL_BITMAP BitMapHeader, + ULONG BitNumber + ) +{ + UNIMPLEMENTED; +} /* * @implemented @@ -693,4 +764,17 @@ RtlSetBits ( } } +/* +* @unimplemented +*/ +BOOLEAN +STDCALL +RtlTestBit ( + PRTL_BITMAP BitMapHeader, + ULONG BitNumber + ) +{ + UNIMPLEMENTED; + return FALSE; +} /* EOF */ diff --git a/reactos/ntoskrnl/rtl/capture.c b/reactos/ntoskrnl/rtl/capture.c index eac181abe2e..c026898ff4c 100644 --- a/reactos/ntoskrnl/rtl/capture.c +++ b/reactos/ntoskrnl/rtl/capture.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: capture.c,v 1.4 2002/09/08 10:23:41 chorns Exp $ +/* $Id: capture.c,v 1.5 2004/08/05 18:17:37 ion Exp $ * * PROJECT: ReactOS kernel * FILE: ntoskrnl/rtl/capture.c @@ -116,5 +116,33 @@ RtlCaptureAnsiString(PANSI_STRING Dest, return(STATUS_SUCCESS); } +/* + * @unimplemented + */ +VOID +STDCALL +RtlCaptureContext ( + OUT PCONTEXT ContextRecord + ) +{ + UNIMPLEMENTED; +} + +/* +* @unimplemented +*/ +USHORT +STDCALL +RtlCaptureStackBackTrace ( + IN ULONG FramesToSkip, + IN ULONG FramesToCapture, + OUT PVOID *BackTrace, + OUT PULONG BackTraceHash OPTIONAL + ) +{ + UNIMPLEMENTED; + return 0; +} + /* EOF */ diff --git a/reactos/ntoskrnl/se/acl.c b/reactos/ntoskrnl/se/acl.c index 05eba6c7f8c..f60fb8c5146 100644 --- a/reactos/ntoskrnl/se/acl.c +++ b/reactos/ntoskrnl/se/acl.c @@ -1,4 +1,4 @@ -/* $Id: acl.c,v 1.18 2004/07/17 20:32:11 ekohl Exp $ +/* $Id: acl.c,v 1.19 2004/08/05 18:17:37 ion Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -201,234 +201,4 @@ SepInitDACLs(VOID) return(TRUE); } - -BOOLEAN STDCALL -RtlFirstFreeAce(PACL Acl, - PACE* Ace) -{ - PACE Current; - PVOID AclEnd; - ULONG i; - - Current = (PACE)(Acl + 1); - *Ace = NULL; - i = 0; - if (Acl->AceCount == 0) - { - *Ace = Current; - return(TRUE); - } - - AclEnd = Acl->AclSize + (char*)Acl; - do - { - if ((PVOID)Current >= AclEnd) - { - return(FALSE); - } - - if (Current->Header.AceType == ACCESS_ALLOWED_COMPOUND_ACE_TYPE && - Acl->AclRevision < ACL_REVISION3) - { - return(FALSE); - } - Current = (PACE)((char*)Current + (ULONG)Current->Header.AceSize); - i++; - } - while (i < Acl->AceCount); - - if ((PVOID)Current < AclEnd) - { - *Ace = Current; - } - - return(TRUE); -} - - -NTSTATUS -RtlpAddKnownAce(PACL Acl, - ULONG Revision, - ACCESS_MASK AccessMask, - PSID Sid, - ULONG Type) -{ - PACE Ace; - - if (!RtlValidSid(Sid)) - { - return(STATUS_INVALID_SID); - } - if (Acl->AclRevision > MAX_ACL_REVISION || - Revision > MAX_ACL_REVISION) - { - return(STATUS_UNKNOWN_REVISION); - } - if (Revision < Acl->AclRevision) - { - Revision = Acl->AclRevision; - } - if (!RtlFirstFreeAce(Acl, &Ace)) - { - return(STATUS_BUFFER_TOO_SMALL); - } - if (Ace == NULL) - { - return(STATUS_UNSUCCESSFUL); - } - if (((char*)Ace + RtlLengthSid(Sid) + sizeof(ACE)) >= - ((char*)Acl + Acl->AclSize)) - { - return(STATUS_BUFFER_TOO_SMALL); - } - Ace->Header.AceFlags = 0; - Ace->Header.AceType = Type; - Ace->Header.AceSize = RtlLengthSid(Sid) + sizeof(ACE); - Ace->AccessMask = AccessMask; - RtlCopySid(RtlLengthSid(Sid), (PSID)(Ace + 1), Sid); - Acl->AceCount++; - Acl->AclRevision = Revision; - return(STATUS_SUCCESS); -} - - -/* - * @implemented - */ -NTSTATUS STDCALL -RtlAddAccessAllowedAce (PACL Acl, - ULONG Revision, - ACCESS_MASK AccessMask, - PSID Sid) -{ - return RtlpAddKnownAce (Acl, - Revision, - AccessMask, - Sid, - ACCESS_ALLOWED_ACE_TYPE); -} - - -/* - * @implemented - */ -NTSTATUS STDCALL -RtlAddAce(PACL Acl, - ULONG AclRevision, - ULONG StartingIndex, - PACE AceList, - ULONG AceListLength) -{ - PACE Ace; - ULONG i; - PACE Current; - ULONG j; - - if (Acl->AclRevision < MIN_ACL_REVISION || - Acl->AclRevision > MAX_ACL_REVISION) - { - return(STATUS_UNSUCCESSFUL); - } - if (!RtlFirstFreeAce(Acl,&Ace)) - { - return(STATUS_UNSUCCESSFUL); - } - if (Acl->AclRevision <= AclRevision) - { - AclRevision = Acl->AclRevision; - } - if (((char*)AceList + AceListLength) <= (char*)AceList) - { - return(STATUS_UNSUCCESSFUL); - } - i = 0; - Current = (PACE)(Acl + 1); - while ((char*)Current < ((char*)AceList + AceListLength)) - { - if (AceList->Header.AceType == ACCESS_ALLOWED_COMPOUND_ACE_TYPE && - AclRevision < ACL_REVISION3) - { - return(STATUS_UNSUCCESSFUL); - } - Current = (PACE)((char*)Current + Current->Header.AceSize); - } - if (Ace == NULL) - { - return(STATUS_UNSUCCESSFUL); - } - if (((char*)Ace + AceListLength) >= ((char*)Acl + Acl->AclSize)) - { - return(STATUS_UNSUCCESSFUL); - } - if (StartingIndex != 0) - { - if (Acl->AceCount > 0) - { - Current = (PACE)(Acl + 1); - for (j = 0; j < StartingIndex; j++) - { - Current = (PACE)((char*)Current + Current->Header.AceSize); - } - } - } - /* RtlpAddData(AceList, AceListLength, Current, (PVOID)Ace - Current)); */ - memcpy(Current, AceList, AceListLength); - Acl->AceCount = Acl->AceCount + i; - Acl->AclRevision = AclRevision; - return(TRUE); -} - - -/* - * @implemented - */ -NTSTATUS STDCALL -RtlCreateAcl(PACL Acl, - ULONG AclSize, - ULONG AclRevision) -{ - if (AclSize < 8) - { - return(STATUS_BUFFER_TOO_SMALL); - } - if (AclRevision < MIN_ACL_REVISION || - AclRevision > MAX_ACL_REVISION) - { - return(STATUS_UNKNOWN_REVISION); - } - if (AclSize > 0xffff) - { - return(STATUS_UNSUCCESSFUL); - } - AclSize = AclSize & ~(0x3); - Acl->AclSize = AclSize; - Acl->AclRevision = AclRevision; - Acl->AceCount = 0; - Acl->Sbz1 = 0; - Acl->Sbz2 = 0; - return(STATUS_SUCCESS); -} - - -BOOLEAN STDCALL -RtlValidAcl(PACL Acl) -{ - PACE Ace; - USHORT Size; - - if (Acl->AclRevision < MIN_ACL_REVISION || - Acl->AclRevision > MAX_ACL_REVISION) - { - return(FALSE); - } - - Size = (Acl->AclSize + 3) & ~3; - if (Size != Acl->AclSize) - { - return(FALSE); - } - - return(RtlFirstFreeAce(Acl, &Ace)); -} - /* EOF */