2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/rtlfuncs.h
4 * PURPOSE: Prototypes for Runtime Library Functions not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
12 /* DEPENDENCIES **************************************************************/
17 /* PROTOTYPES ****************************************************************/
20 * Error and Exception Functions
24 RtlAddVectoredExceptionHandler(
25 IN ULONG FirstHandler
,
26 IN PVECTORED_EXCEPTION_HANDLER VectoredHandler
32 PVOID FailedAssertion
,
40 RtlEncodePointer(IN PVOID Pointer
);
44 RtlDecodePointer(IN PVOID Pointer
);
48 RtlNtStatusToDosError(IN NTSTATUS Status
);
52 RtlRaiseException(IN PEXCEPTION_RECORD ExceptionRecord
);
56 RtlRaiseStatus(NTSTATUS Status
);
61 PEXCEPTION_REGISTRATION RegistrationFrame
,
63 PEXCEPTION_RECORD ExceptionRecord
,
83 IN PVOID BaseAddress OPTIONAL
,
84 IN SIZE_T SizeToReserve OPTIONAL
,
85 IN SIZE_T SizeToCommit OPTIONAL
,
86 IN PVOID Lock OPTIONAL
,
87 IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL
99 RtlDestroyHeap(HANDLE hheap
);
104 IN HANDLE HeapHandle
,
127 RtlLockHeap(IN HANDLE Heap
);
131 RtlUnlockHeap(IN HANDLE Heap
);
138 IN PVOID MemoryPointer
149 #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
157 RtlAbsoluteToSelfRelativeSD(
158 IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
,
159 IN OUT PISECURITY_DESCRIPTOR_RELATIVE SelfRelativeSecurityDescriptor
,
160 IN PULONG BufferLength
165 RtlAddAccessAllowedAce(
168 ACCESS_MASK AccessMask
,
174 RtlAddAccessAllowedAceEx(
176 IN DWORD dwAceRevision
,
184 RtlAddAccessDeniedAce(
187 ACCESS_MASK AccessMask
,
193 RtlAddAccessDeniedAceEx(
197 IN ACCESS_MASK AccessMask
,
203 RtlAddAuditAccessAceEx(
207 IN ACCESS_MASK AccessMask
,
225 RtlAddAuditAccessAce(
228 ACCESS_MASK AccessMask
,
236 RtlAllocateAndInitializeSid(
237 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
238 IN UCHAR SubAuthorityCount
,
239 IN ULONG SubAuthority0
,
240 IN ULONG SubAuthority1
,
241 IN ULONG SubAuthority2
,
242 IN ULONG SubAuthority3
,
243 IN ULONG SubAuthority4
,
244 IN ULONG SubAuthority5
,
245 IN ULONG SubAuthority6
,
246 IN ULONG SubAuthority7
,
252 RtlAreAllAccessesGranted(
253 ACCESS_MASK GrantedAccess
,
254 ACCESS_MASK DesiredAccess
259 RtlAreAnyAccessesGranted(
260 ACCESS_MASK GrantedAccess
,
261 ACCESS_MASK DesiredAccess
273 RtlCopyLuidAndAttributesArray(
275 PLUID_AND_ATTRIBUTES Src
,
276 PLUID_AND_ATTRIBUTES Dest
281 RtlCopySidAndAttributesArray(
283 PSID_AND_ATTRIBUTES Src
,
285 PSID_AND_ATTRIBUTES Dest
,
287 PVOID
* RemainingSidArea
,
288 PULONG RemainingSidAreaSize
293 RtlConvertSidToUnicodeString(
294 OUT PUNICODE_STRING DestinationString
,
296 IN BOOLEAN AllocateDestinationString
317 RtlCreateSecurityDescriptor(
318 PSECURITY_DESCRIPTOR SecurityDescriptor
,
324 RtlCreateSecurityDescriptorRelative(
325 PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor
,
373 RtlGetControlSecurityDescriptor(
374 PSECURITY_DESCRIPTOR SecurityDescriptor
,
375 PSECURITY_DESCRIPTOR_CONTROL Control
,
381 RtlGetDaclSecurityDescriptor(
382 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
383 OUT PBOOLEAN DaclPresent
,
385 OUT PBOOLEAN DaclDefaulted
390 RtlGetSaclSecurityDescriptor(
391 PSECURITY_DESCRIPTOR SecurityDescriptor
,
392 PBOOLEAN SaclPresent
,
394 PBOOLEAN SaclDefaulted
399 RtlGetGroupSecurityDescriptor(
400 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
402 OUT PBOOLEAN GroupDefaulted
407 RtlGetOwnerSecurityDescriptor(
408 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
410 OUT PBOOLEAN OwnerDefaulted
415 RtlGetSecurityDescriptorRMControl(
416 PSECURITY_DESCRIPTOR SecurityDescriptor
,
420 PSID_IDENTIFIER_AUTHORITY
422 RtlIdentifierAuthoritySid(PSID Sid
);
426 RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);
432 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
433 IN UCHAR SubAuthorityCount
438 RtlLengthRequiredSid(IN UCHAR SubAuthorityCount
);
442 RtlLengthSid(IN PSID Sid
);
447 PACCESS_MASK AccessMask
,
448 PGENERIC_MAPPING GenericMapping
453 RtlQueryInformationAcl(
456 ULONG InformationLength
,
457 ACL_INFORMATION_CLASS InformationClass
462 RtlSelfRelativeToAbsoluteSD(
463 IN PISECURITY_DESCRIPTOR_RELATIVE SelfRelativeSD
,
464 OUT PSECURITY_DESCRIPTOR AbsoluteSD
,
465 IN PULONG AbsoluteSDSize
,
472 IN PSID PrimaryGroup
,
473 IN PULONG PrimaryGroupSize
478 RtlSetControlSecurityDescriptor(
479 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
480 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest
,
481 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
486 RtlSetDaclSecurityDescriptor (
487 PSECURITY_DESCRIPTOR SecurityDescriptor
,
490 BOOLEAN DaclDefaulted
495 RtlSetGroupSecurityDescriptor(
496 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
498 IN BOOLEAN GroupDefaulted
503 RtlSetInformationAcl(
506 ULONG InformationLength
,
507 ACL_INFORMATION_CLASS InformationClass
512 RtlSetOwnerSecurityDescriptor(
513 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
515 IN BOOLEAN OwnerDefaulted
520 RtlSetSaclSecurityDescriptor(
521 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
522 IN BOOLEAN SaclPresent
,
524 IN BOOLEAN SaclDefaulted
529 RtlSetSecurityDescriptorRMControl(
530 PSECURITY_DESCRIPTOR SecurityDescriptor
,
536 RtlSubAuthorityCountSid(
544 IN ULONG SubAuthority
549 RtlValidRelativeSecurityDescriptor(
550 IN PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptorInput
,
551 IN ULONG SecurityDescriptorLength
,
552 IN SECURITY_INFORMATION RequiredInformation
557 RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
561 RtlValidSid(IN PSID Sid
);
565 RtlValidAcl(PACL Acl
);
569 RtlDeleteSecurityObject(
570 IN PSECURITY_DESCRIPTOR
*ObjectDescriptor
575 RtlNewSecurityObject(
576 IN PSECURITY_DESCRIPTOR ParentDescriptor
,
577 IN PSECURITY_DESCRIPTOR CreatorDescriptor
,
578 OUT PSECURITY_DESCRIPTOR
*NewDescriptor
,
579 IN BOOLEAN IsDirectoryObject
,
581 IN PGENERIC_MAPPING GenericMapping
586 RtlQuerySecurityObject(
587 IN PSECURITY_DESCRIPTOR ObjectDescriptor
,
588 IN SECURITY_INFORMATION SecurityInformation
,
589 OUT PSECURITY_DESCRIPTOR ResultantDescriptor
,
590 IN ULONG DescriptorLength
,
591 OUT PULONG ReturnLength
596 RtlSetSecurityObject(
597 IN SECURITY_INFORMATION SecurityInformation
,
598 IN PSECURITY_DESCRIPTOR ModificationDescriptor
,
599 OUT PSECURITY_DESCRIPTOR
*ObjectsSecurityDescriptor
,
600 IN PGENERIC_MAPPING GenericMapping
,
605 * Single-Character Functions
609 RtlLargeIntegerToChar(
610 IN PLARGE_INTEGER Value
,
618 RtlUpperChar(CHAR Source
);
622 RtlUpcaseUnicodeChar(WCHAR Source
);
626 RtlDowncaseUnicodeChar(IN WCHAR Source
);
641 IN ULONG Base OPTIONAL
,
642 IN ULONG Length OPTIONAL
,
648 RtlIntegerToUnicodeString(
651 IN OUT PUNICODE_STRING String
664 RtlUshortByteSwap(IN USHORT Source
);
667 * Unicode->Ansi String Functions
671 RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString
);
675 RtlUnicodeStringToAnsiString(
676 PANSI_STRING DestinationString
,
677 PUNICODE_STRING SourceString
,
678 BOOLEAN AllocateDestinationString
682 * Unicode->OEM String Functions
686 RtlUpcaseUnicodeStringToOemString(
687 POEM_STRING DestinationString
,
688 PUNICODE_STRING SourceString
,
689 BOOLEAN AllocateDestinationString
694 RtlUpcaseUnicodeStringToCountedOemString(
695 IN OUT POEM_STRING DestinationString
,
696 IN PUNICODE_STRING SourceString
,
697 IN BOOLEAN AllocateDestinationString
702 RtlUnicodeStringToOemString(
703 POEM_STRING DestinationString
,
704 PUNICODE_STRING SourceString
,
705 BOOLEAN AllocateDestinationString
710 RtlUpcaseUnicodeToOemN(
714 PWCHAR UnicodeString
,
720 RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString
);
728 PWCHAR UnicodeString
,
733 * Unicode->MultiByte String Functions
737 RtlUnicodeToMultiByteN(
741 PWCHAR UnicodeString
,
747 RtlUpcaseUnicodeToMultiByteN(
751 PWCHAR UnicodeString
,
757 RtlUnicodeToMultiByteSize(
759 PWCHAR UnicodeString
,
764 * OEM to Unicode Functions
768 RtlOemStringToUnicodeSize(POEM_STRING AnsiString
);
772 RtlOemStringToUnicodeString(
773 PUNICODE_STRING DestinationString
,
774 POEM_STRING SourceString
,
775 BOOLEAN AllocateDestinationString
782 ULONG MaxBytesInUnicodeString
,
783 PULONG BytesInUnicodeString
,
785 ULONG BytesInOemString
789 * Ansi->Unicode String Functions
793 RtlAnsiStringToUnicodeString(
794 PUNICODE_STRING DestinationString
,
795 PANSI_STRING SourceString
,
796 BOOLEAN AllocateDestinationString
801 RtlAnsiStringToUnicodeSize(
802 PANSI_STRING AnsiString
807 RtlCreateUnicodeStringFromAsciiz(
808 OUT PUNICODE_STRING Destination
,
813 * Unicode String Functions
817 RtlAppendUnicodeToString(
818 PUNICODE_STRING Destination
,
824 RtlAppendUnicodeStringToString(
825 PUNICODE_STRING Destination
,
826 PUNICODE_STRING Source
831 RtlCompareUnicodeString(
832 PUNICODE_STRING String1
,
833 PUNICODE_STRING String2
,
834 BOOLEAN CaseInsensitive
839 RtlCopyUnicodeString(
840 PUNICODE_STRING DestinationString
,
841 PUNICODE_STRING SourceString
846 RtlCreateUnicodeString(
847 PUNICODE_STRING DestinationString
,
853 RtlDowncaseUnicodeString(
854 IN OUT PUNICODE_STRING UniDest
,
855 IN PUNICODE_STRING UniSource
,
856 IN BOOLEAN AllocateDestinationString
861 RtlDuplicateUnicodeString(
863 IN PUNICODE_STRING SourceString
,
864 OUT PUNICODE_STRING DestinationString
869 RtlEqualUnicodeString(
870 PCUNICODE_STRING String1
,
871 PCUNICODE_STRING String2
,
872 BOOLEAN CaseInsensitive
877 RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString
);
881 RtlHashUnicodeString(
882 IN CONST UNICODE_STRING
*String
,
883 IN BOOLEAN CaseInSensitive
,
884 IN ULONG HashAlgorithm
,
890 RtlInitUnicodeString(
891 IN OUT PUNICODE_STRING DestinationString
,
892 IN PCWSTR SourceString
);
904 RtlPrefixUnicodeString(
905 PUNICODE_STRING String1
,
906 PUNICODE_STRING String2
,
907 BOOLEAN CaseInsensitive
912 RtlUpcaseUnicodeString(
913 PUNICODE_STRING DestinationString
,
914 PCUNICODE_STRING SourceString
,
915 BOOLEAN AllocateDestinationString
920 RtlUnicodeStringToInteger(
921 PUNICODE_STRING String
,
927 * Ansi String Functions
931 RtlFreeAnsiString(IN PANSI_STRING AnsiString
);
936 PANSI_STRING DestinationString
,
941 * OEM String Functions
945 RtlFreeOemString(IN POEM_STRING OemString
);
948 * MultiByte->Unicode String Functions
952 RtlMultiByteToUnicodeN(
953 PWCHAR UnicodeString
,
956 const PCHAR MbString
,
962 RtlMultiByteToUnicodeSize(
973 RtlAddAtomToAtomTable(
974 IN PRTL_ATOM_TABLE AtomTable
,
983 IN OUT PRTL_ATOM_TABLE
*AtomTable
988 RtlDeleteAtomFromAtomTable(
989 IN PRTL_ATOM_TABLE AtomTable
,
995 RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable
);
999 RtlQueryAtomInAtomTable(
1000 IN PRTL_ATOM_TABLE AtomTable
,
1002 IN OUT PULONG RefCount OPTIONAL
,
1003 IN OUT PULONG PinCount OPTIONAL
,
1004 IN OUT PWSTR AtomName OPTIONAL
,
1005 IN OUT PULONG NameLength OPTIONAL
1010 RtlLookupAtomInAtomTable(
1011 IN PRTL_ATOM_TABLE AtomTable
,
1022 IN PVOID Destination
,
1028 * Process Management Functions
1032 RtlAcquirePebLock(VOID
);
1036 RtlCreateProcessParameters (
1037 OUT PRTL_USER_PROCESS_PARAMETERS
*ProcessParameters
,
1038 IN PUNICODE_STRING ImagePathName OPTIONAL
,
1039 IN PUNICODE_STRING DllPath OPTIONAL
,
1040 IN PUNICODE_STRING CurrentDirectory OPTIONAL
,
1041 IN PUNICODE_STRING CommandLine OPTIONAL
,
1042 IN PWSTR Environment OPTIONAL
,
1043 IN PUNICODE_STRING WindowTitle OPTIONAL
,
1044 IN PUNICODE_STRING DesktopInfo OPTIONAL
,
1045 IN PUNICODE_STRING ShellInfo OPTIONAL
,
1046 IN PUNICODE_STRING RuntimeInfo OPTIONAL
1051 RtlCreateUserProcess(
1052 IN PUNICODE_STRING ImageFileName
,
1053 IN ULONG Attributes
,
1054 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
,
1055 IN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor OPTIONAL
,
1056 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor OPTIONAL
,
1057 IN HANDLE ParentProcess OPTIONAL
,
1058 IN BOOLEAN CurrentDirectory
,
1059 IN HANDLE DebugPort OPTIONAL
,
1060 IN HANDLE ExceptionPort OPTIONAL
,
1061 OUT PRTL_USER_PROCESS_INFORMATION ProcessInfo
1066 RtlCreateUserThread(
1067 IN HANDLE ProcessHandle
,
1068 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
1069 IN BOOLEAN CreateSuspended
,
1070 IN LONG StackZeroBits
,
1071 IN ULONG StackReserve
,
1072 IN ULONG StackCommit
,
1073 IN PTHREAD_START_ROUTINE StartAddress
,
1075 IN OUT PHANDLE ThreadHandle
,
1076 IN OUT PCLIENT_ID ClientId
1079 PRTL_USER_PROCESS_PARAMETERS
1081 RtlDeNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1085 RtlDestroyProcessParameters(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1089 RtlExitUserThread(NTSTATUS Status
);
1093 RtlInitializeContext(
1094 IN HANDLE ProcessHandle
,
1095 OUT PCONTEXT ThreadContext
,
1096 IN PVOID ThreadStartParam OPTIONAL
,
1097 IN PTHREAD_START_ROUTINE ThreadStartAddress
,
1098 IN PINITIAL_TEB InitialTeb
1101 PRTL_USER_PROCESS_PARAMETERS
1103 RtlNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1107 RtlReleasePebLock(VOID
);
1110 * Environment/Path Functions
1114 RtlCreateEnvironment(
1121 RtlDestroyEnvironment(PWSTR Environment
);
1125 RtlDoesFileExists_U(PWSTR FileName
);
1129 RtlDetermineDosPathNameType_U(PCWSTR Path
);
1144 RtlDosPathNameToNtPathName_U(
1146 PUNICODE_STRING NtName
,
1148 PCURDIR CurrentDirectory
1153 RtlExpandEnvironmentStrings_U(
1155 PUNICODE_STRING Source
,
1156 PUNICODE_STRING Destination
,
1162 RtlGetCurrentDirectory_U(
1163 ULONG MaximumLength
,
1169 RtlGetFullPathName_U(
1170 const WCHAR
*dosname
,
1178 RtlIsNameLegalDOS8Dot3(
1179 IN PUNICODE_STRING UnicodeName
,
1180 IN PANSI_STRING AnsiName
,
1186 RtlQueryEnvironmentVariable_U(
1188 PUNICODE_STRING Name
,
1189 PUNICODE_STRING Value
1194 RtlSetCurrentDirectory_U(PUNICODE_STRING name
);
1198 RtlSetEnvironmentVariable(
1200 PUNICODE_STRING Name
,
1201 PUNICODE_STRING Value
1205 * Critical Section/Resource Functions
1209 RtlDeleteCriticalSection (
1210 IN PRTL_CRITICAL_SECTION CriticalSection
1215 RtlEnterCriticalSection(
1216 IN PRTL_CRITICAL_SECTION CriticalSection
1221 RtlInitializeCriticalSection(
1222 IN PRTL_CRITICAL_SECTION CriticalSection
1227 RtlInitializeCriticalSectionAndSpinCount(
1228 IN PRTL_CRITICAL_SECTION CriticalSection
,
1234 RtlLeaveCriticalSection(
1235 IN PRTL_CRITICAL_SECTION CriticalSection
1240 RtlpUnWaitCriticalSection(
1241 IN PRTL_CRITICAL_SECTION CriticalSection
1246 RtlpWaitForCriticalSection(
1247 IN PRTL_CRITICAL_SECTION CriticalSection
1252 RtlAcquireResourceExclusive(
1253 IN PRTL_RESOURCE Resource
,
1259 RtlAcquireResourceShared(
1260 IN PRTL_RESOURCE Resource
,
1266 RtlConvertExclusiveToShared(
1267 IN PRTL_RESOURCE Resource
1272 RtlConvertSharedToExclusive(
1273 IN PRTL_RESOURCE Resource
1279 IN PRTL_RESOURCE Resource
1285 IN PRTL_RESOURCE Resource
1290 RtlInitializeResource(
1291 IN PRTL_RESOURCE Resource
1297 IN PRTL_RESOURCE Resource
1301 * Compression Functions
1306 IN USHORT CompressionFormatAndEngine
,
1307 IN PUCHAR UncompressedBuffer
,
1308 IN ULONG UncompressedBufferSize
,
1309 OUT PUCHAR CompressedBuffer
,
1310 IN ULONG CompressedBufferSize
,
1311 IN ULONG UncompressedChunkSize
,
1312 OUT PULONG FinalCompressedSize
,
1318 RtlDecompressBuffer(
1319 IN USHORT CompressionFormat
,
1320 OUT PUCHAR UncompressedBuffer
,
1321 IN ULONG UncompressedBufferSize
,
1322 IN PUCHAR CompressedBuffer
,
1323 IN ULONG CompressedBufferSize
,
1324 OUT PULONG FinalUncompressedSize
1329 RtlGetCompressionWorkSpaceSize(
1330 IN USHORT CompressionFormatAndEngine
,
1331 OUT PULONG CompressBufferWorkSpaceSize
,
1332 OUT PULONG CompressFragmentWorkSpaceSize
1336 * Debug Info Functions
1340 RtlCreateQueryDebugBuffer(
1342 IN BOOLEAN EventPair
1347 RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer
);
1351 RtlQueryProcessDebugInformation(
1353 IN ULONG DebugInfoClassMask
,
1354 IN OUT PDEBUG_BUFFER DebugBuffer
1363 IN PRTL_BITMAP BitMapHeader
,
1364 IN ULONG StartingIndex
,
1371 IN PRTL_BITMAP BitMapHeader
,
1372 IN ULONG StartingIndex
,
1379 IN PRTL_BITMAP BitMapHeader
,
1380 IN ULONG StartingIndex
,
1381 IN ULONG NumberToClear
1387 IN PRTL_BITMAP BitMapHeader
,
1388 IN ULONG NumberToFind
,
1394 RtlFindClearBitsAndSet(
1395 IN PRTL_BITMAP BitMapHeader
,
1396 IN ULONG NumberToFind
,
1402 RtlInitializeBitMap(
1403 IN PRTL_BITMAP BitMapHeader
,
1404 IN PULONG BitMapBuffer
,
1405 IN ULONG SizeOfBitMap
1411 IN PRTL_BITMAP BitMapHeader
,
1412 IN ULONG StartingIndex
,
1413 IN ULONG NumberToSet
1424 WAITORTIMERCALLBACKFUNC Callback
,
1433 RtlCreateTimerQueue(PHANDLE TimerQueue
);
1440 HANDLE CompletionEvent
1454 RtlDeleteTimerQueueEx(
1456 HANDLE CompletionEvent
1461 RtlDeleteTimerQueue(HANDLE TimerQueue
);
1475 DbgBreakPoint(VOID
);
1478 * Handle Table Functions
1480 PRTL_HANDLE_TABLE_ENTRY
1483 IN PRTL_HANDLE_TABLE HandleTable
,
1489 RtlDestroyHandleTable(IN PRTL_HANDLE_TABLE HandleTable
);
1494 IN PRTL_HANDLE_TABLE HandleTable
,
1495 IN PRTL_HANDLE_TABLE_ENTRY Handle
1500 RtlInitializeHandleTable(
1502 IN ULONG HandleSize
,
1503 IN PRTL_HANDLE_TABLE HandleTable
1509 IN PRTL_HANDLE_TABLE HandleTable
,
1510 IN PRTL_HANDLE_TABLE_ENTRY Handle
1515 RtlIsValidIndexHandle(
1516 IN PRTL_HANDLE_TABLE HandleTable
,
1517 IN OUT PRTL_HANDLE_TABLE_ENTRY
*Handle
,
1527 IN PVOID BaseAddress
,
1531 OUT PRTL_MESSAGE_RESOURCE_ENTRY
*MessageResourceEntry
1536 RtlGetNtGlobalFlags(VOID
);
1540 RtlImageDirectoryEntryToData(
1550 PIMAGE_NT_HEADERS NtHeader
,
1553 PIMAGE_SECTION_HEADER
*SectionHeader
1558 RtlImageNtHeader(IN PVOID BaseAddress
);
1560 PIMAGE_SECTION_HEADER
1562 RtlImageRvaToSection(
1563 PIMAGE_NT_HEADERS NtHeader
,
1569 * Registry Functions
1573 RtlCheckRegistryKey(
1580 RtlFormatCurrentUserKeyPath(IN OUT PUNICODE_STRING KeyPath
);
1585 OUT HANDLE KeyHandle
,
1586 IN ACCESS_MASK DesiredAccess
,
1587 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1594 IN ACCESS_MASK DesiredAccess
,
1595 OUT PHANDLE KeyHandle
1600 RtlQueryRegistryValues(
1601 IN ULONG RelativeTo
,
1603 IN PRTL_QUERY_REGISTRY_TABLE QueryTable
,
1605 IN PVOID Environment
1610 RtlWriteRegistryValue(
1625 IN PUSHORT AnsiTableBase
,
1626 IN PUSHORT OemTableBase
,
1627 IN PUSHORT CaseTableBase
,
1628 OUT PNLSTABLEINFO NlsTable
1633 RtlInitCodePageTable(
1634 IN PUSHORT TableBase
,
1635 OUT PCPTABLEINFO CodePageTable
1640 RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable
);
1643 * Misc conversion functions
1647 RtlConvertLongToLargeInteger(IN LONG SignedInteger
);
1651 RtlEnlargedIntegerMultiply(
1658 RtlEnlargedUnsignedDivide(
1659 ULARGE_INTEGER Dividend
,
1666 RtlEnlargedUnsignedMultiply(
1673 RtlUniform(PULONG Seed
);
1680 RtlQueryTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1684 RtlSecondsSince1970ToTime(
1685 IN ULONG SecondsSince1970
,
1686 OUT PLARGE_INTEGER Time
1691 RtlSetTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1695 RtlTimeFieldsToTime(
1696 PTIME_FIELDS TimeFields
,
1702 RtlTimeToTimeFields(
1703 PLARGE_INTEGER Time
,
1704 PTIME_FIELDS TimeFields
1712 RtlVerifyVersionInfo(
1713 IN PRTL_OSVERSIONINFOEXW VersionInfo
,
1715 IN ULONGLONG ConditionMask
1720 RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation
);