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 **************************************************************/
15 /* PROTOTYPES ****************************************************************/
18 * Error and Exception Functions
22 RtlAddVectoredExceptionHandler(
23 IN ULONG FirstHandler
,
24 IN PVECTORED_EXCEPTION_HANDLER VectoredHandler
30 PVOID FailedAssertion
,
38 RtlEncodePointer(IN PVOID Pointer
);
42 RtlDecodePointer(IN PVOID Pointer
);
46 RtlNtStatusToDosError(IN NTSTATUS Status
);
50 RtlRaiseException(IN PEXCEPTION_RECORD ExceptionRecord
);
54 RtlRaiseStatus(NTSTATUS Status
);
58 RtlUnhandledExceptionFilter(struct _EXCEPTION_POINTERS
* ExceptionInfo
);
63 PEXCEPTION_REGISTRATION RegistrationFrame
,
65 PEXCEPTION_RECORD ExceptionRecord
,
85 IN PVOID BaseAddress OPTIONAL
,
86 IN SIZE_T SizeToReserve OPTIONAL
,
87 IN SIZE_T SizeToCommit OPTIONAL
,
88 IN PVOID Lock OPTIONAL
,
89 IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL
101 RtlDestroyHeap(HANDLE hheap
);
106 IN HANDLE HeapHandle
,
129 RtlLockHeap(IN HANDLE Heap
);
133 RtlUnlockHeap(IN HANDLE Heap
);
140 IN PVOID MemoryPointer
151 #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
159 RtlAbsoluteToSelfRelativeSD(
160 IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
,
161 IN OUT PISECURITY_DESCRIPTOR_RELATIVE SelfRelativeSecurityDescriptor
,
162 IN PULONG BufferLength
167 RtlAddAccessAllowedAce(
170 ACCESS_MASK AccessMask
,
176 RtlAddAccessAllowedAceEx(
178 IN DWORD dwAceRevision
,
186 RtlAddAccessDeniedAce(
189 ACCESS_MASK AccessMask
,
195 RtlAddAccessDeniedAceEx(
199 IN ACCESS_MASK AccessMask
,
205 RtlAddAuditAccessAceEx(
209 IN ACCESS_MASK AccessMask
,
227 RtlAddAuditAccessAce(
230 ACCESS_MASK AccessMask
,
241 IN BOOLEAN ForThread
,
242 OUT PBOOLEAN OldValue
247 RtlAllocateAndInitializeSid(
248 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
249 IN UCHAR SubAuthorityCount
,
250 IN ULONG SubAuthority0
,
251 IN ULONG SubAuthority1
,
252 IN ULONG SubAuthority2
,
253 IN ULONG SubAuthority3
,
254 IN ULONG SubAuthority4
,
255 IN ULONG SubAuthority5
,
256 IN ULONG SubAuthority6
,
257 IN ULONG SubAuthority7
,
263 RtlAreAllAccessesGranted(
264 ACCESS_MASK GrantedAccess
,
265 ACCESS_MASK DesiredAccess
270 RtlAreAnyAccessesGranted(
271 ACCESS_MASK GrantedAccess
,
272 ACCESS_MASK DesiredAccess
284 RtlCopyLuidAndAttributesArray(
286 PLUID_AND_ATTRIBUTES Src
,
287 PLUID_AND_ATTRIBUTES Dest
292 RtlCopySidAndAttributesArray(
294 PSID_AND_ATTRIBUTES Src
,
296 PSID_AND_ATTRIBUTES Dest
,
298 PVOID
* RemainingSidArea
,
299 PULONG RemainingSidAreaSize
304 RtlConvertSidToUnicodeString(
305 OUT PUNICODE_STRING DestinationString
,
307 IN BOOLEAN AllocateDestinationString
328 RtlCreateSecurityDescriptor(
329 PSECURITY_DESCRIPTOR SecurityDescriptor
,
335 RtlCreateSecurityDescriptorRelative(
336 PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor
,
384 RtlGetControlSecurityDescriptor(
385 PSECURITY_DESCRIPTOR SecurityDescriptor
,
386 PSECURITY_DESCRIPTOR_CONTROL Control
,
392 RtlGetDaclSecurityDescriptor(
393 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
394 OUT PBOOLEAN DaclPresent
,
396 OUT PBOOLEAN DaclDefaulted
401 RtlGetSaclSecurityDescriptor(
402 PSECURITY_DESCRIPTOR SecurityDescriptor
,
403 PBOOLEAN SaclPresent
,
405 PBOOLEAN SaclDefaulted
410 RtlGetGroupSecurityDescriptor(
411 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
413 OUT PBOOLEAN GroupDefaulted
418 RtlGetOwnerSecurityDescriptor(
419 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
421 OUT PBOOLEAN OwnerDefaulted
426 RtlGetSecurityDescriptorRMControl(
427 PSECURITY_DESCRIPTOR SecurityDescriptor
,
431 PSID_IDENTIFIER_AUTHORITY
433 RtlIdentifierAuthoritySid(PSID Sid
);
437 RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);
443 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
444 IN UCHAR SubAuthorityCount
449 RtlLengthRequiredSid(IN UCHAR SubAuthorityCount
);
453 RtlLengthSid(IN PSID Sid
);
458 PACCESS_MASK AccessMask
,
459 PGENERIC_MAPPING GenericMapping
464 RtlQueryInformationAcl(
467 ULONG InformationLength
,
468 ACL_INFORMATION_CLASS InformationClass
473 RtlSelfRelativeToAbsoluteSD(
474 IN PISECURITY_DESCRIPTOR_RELATIVE SelfRelativeSD
,
475 OUT PSECURITY_DESCRIPTOR AbsoluteSD
,
476 IN PULONG AbsoluteSDSize
,
483 IN PSID PrimaryGroup
,
484 IN PULONG PrimaryGroupSize
489 RtlSetControlSecurityDescriptor(
490 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
491 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest
,
492 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
497 RtlSetDaclSecurityDescriptor (
498 PSECURITY_DESCRIPTOR SecurityDescriptor
,
501 BOOLEAN DaclDefaulted
506 RtlSetGroupSecurityDescriptor(
507 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
509 IN BOOLEAN GroupDefaulted
514 RtlSetInformationAcl(
517 ULONG InformationLength
,
518 ACL_INFORMATION_CLASS InformationClass
523 RtlSetOwnerSecurityDescriptor(
524 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
526 IN BOOLEAN OwnerDefaulted
531 RtlSetSaclSecurityDescriptor(
532 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
533 IN BOOLEAN SaclPresent
,
535 IN BOOLEAN SaclDefaulted
540 RtlSetSecurityDescriptorRMControl(
541 PSECURITY_DESCRIPTOR SecurityDescriptor
,
547 RtlSubAuthorityCountSid(
555 IN ULONG SubAuthority
560 RtlValidRelativeSecurityDescriptor(
561 IN PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptorInput
,
562 IN ULONG SecurityDescriptorLength
,
563 IN SECURITY_INFORMATION RequiredInformation
568 RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
572 RtlValidSid(IN PSID Sid
);
576 RtlValidAcl(PACL Acl
);
580 RtlDeleteSecurityObject(
581 IN PSECURITY_DESCRIPTOR
*ObjectDescriptor
586 RtlNewSecurityObject(
587 IN PSECURITY_DESCRIPTOR ParentDescriptor
,
588 IN PSECURITY_DESCRIPTOR CreatorDescriptor
,
589 OUT PSECURITY_DESCRIPTOR
*NewDescriptor
,
590 IN BOOLEAN IsDirectoryObject
,
592 IN PGENERIC_MAPPING GenericMapping
597 RtlQuerySecurityObject(
598 IN PSECURITY_DESCRIPTOR ObjectDescriptor
,
599 IN SECURITY_INFORMATION SecurityInformation
,
600 OUT PSECURITY_DESCRIPTOR ResultantDescriptor
,
601 IN ULONG DescriptorLength
,
602 OUT PULONG ReturnLength
607 RtlSetSecurityObject(
608 IN SECURITY_INFORMATION SecurityInformation
,
609 IN PSECURITY_DESCRIPTOR ModificationDescriptor
,
610 OUT PSECURITY_DESCRIPTOR
*ObjectsSecurityDescriptor
,
611 IN PGENERIC_MAPPING GenericMapping
,
616 * Single-Character Functions
620 RtlLargeIntegerToChar(
621 IN PLARGE_INTEGER Value
,
629 RtlUpperChar(CHAR Source
);
633 RtlUpcaseUnicodeChar(WCHAR Source
);
637 RtlDowncaseUnicodeChar(IN WCHAR Source
);
652 IN ULONG Base OPTIONAL
,
653 IN ULONG Length OPTIONAL
,
659 RtlIntegerToUnicodeString(
662 IN OUT PUNICODE_STRING String
675 RtlUshortByteSwap(IN USHORT Source
);
678 * Unicode->Ansi String Functions
682 RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString
);
686 RtlUnicodeStringToAnsiString(
687 PANSI_STRING DestinationString
,
688 PUNICODE_STRING SourceString
,
689 BOOLEAN AllocateDestinationString
693 * Unicode->OEM String Functions
697 RtlUpcaseUnicodeStringToOemString(
698 POEM_STRING DestinationString
,
699 PUNICODE_STRING SourceString
,
700 BOOLEAN AllocateDestinationString
705 RtlUpcaseUnicodeStringToCountedOemString(
706 IN OUT POEM_STRING DestinationString
,
707 IN PUNICODE_STRING SourceString
,
708 IN BOOLEAN AllocateDestinationString
713 RtlUnicodeStringToOemString(
714 POEM_STRING DestinationString
,
715 PUNICODE_STRING SourceString
,
716 BOOLEAN AllocateDestinationString
721 RtlUpcaseUnicodeToOemN(
725 PWCHAR UnicodeString
,
731 RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString
);
739 PWCHAR UnicodeString
,
744 * Unicode->MultiByte String Functions
748 RtlUnicodeToMultiByteN(
752 PWCHAR UnicodeString
,
758 RtlUpcaseUnicodeToMultiByteN(
762 PWCHAR UnicodeString
,
768 RtlUnicodeToMultiByteSize(
770 PWCHAR UnicodeString
,
775 * OEM to Unicode Functions
779 RtlOemStringToUnicodeSize(POEM_STRING AnsiString
);
783 RtlOemStringToUnicodeString(
784 PUNICODE_STRING DestinationString
,
785 POEM_STRING SourceString
,
786 BOOLEAN AllocateDestinationString
793 ULONG MaxBytesInUnicodeString
,
794 PULONG BytesInUnicodeString
,
796 ULONG BytesInOemString
800 * Ansi->Unicode String Functions
804 RtlAnsiStringToUnicodeString(
805 PUNICODE_STRING DestinationString
,
806 PANSI_STRING SourceString
,
807 BOOLEAN AllocateDestinationString
812 RtlAnsiStringToUnicodeSize(
813 PANSI_STRING AnsiString
818 RtlCreateUnicodeStringFromAsciiz(
819 OUT PUNICODE_STRING Destination
,
824 * Unicode String Functions
828 RtlAppendUnicodeToString(
829 PUNICODE_STRING Destination
,
835 RtlAppendUnicodeStringToString(
836 PUNICODE_STRING Destination
,
837 PUNICODE_STRING Source
842 RtlCompareUnicodeString(
843 PUNICODE_STRING String1
,
844 PUNICODE_STRING String2
,
845 BOOLEAN CaseInsensitive
850 RtlCopyUnicodeString(
851 PUNICODE_STRING DestinationString
,
852 PUNICODE_STRING SourceString
857 RtlCreateUnicodeString(
858 PUNICODE_STRING DestinationString
,
864 RtlDowncaseUnicodeString(
865 IN OUT PUNICODE_STRING UniDest
,
866 IN PUNICODE_STRING UniSource
,
867 IN BOOLEAN AllocateDestinationString
872 RtlDuplicateUnicodeString(
874 IN PUNICODE_STRING SourceString
,
875 OUT PUNICODE_STRING DestinationString
880 RtlEqualUnicodeString(
881 PCUNICODE_STRING String1
,
882 PCUNICODE_STRING String2
,
883 BOOLEAN CaseInsensitive
888 RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString
);
892 RtlHashUnicodeString(
893 IN CONST UNICODE_STRING
*String
,
894 IN BOOLEAN CaseInSensitive
,
895 IN ULONG HashAlgorithm
,
901 RtlInitUnicodeString(
902 IN OUT PUNICODE_STRING DestinationString
,
903 IN PCWSTR SourceString
);
915 RtlPrefixUnicodeString(
916 PUNICODE_STRING String1
,
917 PUNICODE_STRING String2
,
918 BOOLEAN CaseInsensitive
923 RtlUpcaseUnicodeString(
924 PUNICODE_STRING DestinationString
,
925 PCUNICODE_STRING SourceString
,
926 BOOLEAN AllocateDestinationString
931 RtlUnicodeStringToInteger(
932 PUNICODE_STRING String
,
938 * Ansi String Functions
942 RtlFreeAnsiString(IN PANSI_STRING AnsiString
);
947 PANSI_STRING DestinationString
,
952 * OEM String Functions
956 RtlFreeOemString(IN POEM_STRING OemString
);
959 * MultiByte->Unicode String Functions
963 RtlMultiByteToUnicodeN(
964 PWCHAR UnicodeString
,
967 const PCHAR MbString
,
973 RtlMultiByteToUnicodeSize(
984 RtlAddAtomToAtomTable(
985 IN PRTL_ATOM_TABLE AtomTable
,
994 IN OUT PRTL_ATOM_TABLE
*AtomTable
999 RtlDeleteAtomFromAtomTable(
1000 IN PRTL_ATOM_TABLE AtomTable
,
1006 RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable
);
1010 RtlQueryAtomInAtomTable(
1011 IN PRTL_ATOM_TABLE AtomTable
,
1013 IN OUT PULONG RefCount OPTIONAL
,
1014 IN OUT PULONG PinCount OPTIONAL
,
1015 IN OUT PWSTR AtomName OPTIONAL
,
1016 IN OUT PULONG NameLength OPTIONAL
1021 RtlLookupAtomInAtomTable(
1022 IN PRTL_ATOM_TABLE AtomTable
,
1033 IN PVOID Destination
,
1039 * Process Management Functions
1043 RtlAcquirePebLock(VOID
);
1047 RtlCreateProcessParameters (
1048 OUT PRTL_USER_PROCESS_PARAMETERS
*ProcessParameters
,
1049 IN PUNICODE_STRING ImagePathName OPTIONAL
,
1050 IN PUNICODE_STRING DllPath OPTIONAL
,
1051 IN PUNICODE_STRING CurrentDirectory OPTIONAL
,
1052 IN PUNICODE_STRING CommandLine OPTIONAL
,
1053 IN PWSTR Environment OPTIONAL
,
1054 IN PUNICODE_STRING WindowTitle OPTIONAL
,
1055 IN PUNICODE_STRING DesktopInfo OPTIONAL
,
1056 IN PUNICODE_STRING ShellInfo OPTIONAL
,
1057 IN PUNICODE_STRING RuntimeInfo OPTIONAL
1062 RtlCreateUserProcess(
1063 IN PUNICODE_STRING ImageFileName
,
1064 IN ULONG Attributes
,
1065 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
,
1066 IN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor OPTIONAL
,
1067 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor OPTIONAL
,
1068 IN HANDLE ParentProcess OPTIONAL
,
1069 IN BOOLEAN CurrentDirectory
,
1070 IN HANDLE DebugPort OPTIONAL
,
1071 IN HANDLE ExceptionPort OPTIONAL
,
1072 OUT PRTL_USER_PROCESS_INFORMATION ProcessInfo
1077 RtlCreateUserThread(
1078 IN HANDLE ProcessHandle
,
1079 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
1080 IN BOOLEAN CreateSuspended
,
1081 IN LONG StackZeroBits
,
1082 IN ULONG StackReserve
,
1083 IN ULONG StackCommit
,
1084 IN PTHREAD_START_ROUTINE StartAddress
,
1086 IN OUT PHANDLE ThreadHandle
,
1087 IN OUT PCLIENT_ID ClientId
1090 PRTL_USER_PROCESS_PARAMETERS
1092 RtlDeNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1096 RtlDestroyProcessParameters(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1100 RtlExitUserThread(NTSTATUS Status
);
1104 RtlInitializeContext(
1105 IN HANDLE ProcessHandle
,
1106 OUT PCONTEXT ThreadContext
,
1107 IN PVOID ThreadStartParam OPTIONAL
,
1108 IN PTHREAD_START_ROUTINE ThreadStartAddress
,
1109 IN PINITIAL_TEB InitialTeb
1112 PRTL_USER_PROCESS_PARAMETERS
1114 RtlNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1118 RtlReleasePebLock(VOID
);
1121 * Environment/Path Functions
1125 RtlCreateEnvironment(
1132 RtlDestroyEnvironment(PWSTR Environment
);
1136 RtlDoesFileExists_U(PWSTR FileName
);
1140 RtlDetermineDosPathNameType_U(PCWSTR Path
);
1155 RtlDosPathNameToNtPathName_U(
1157 PUNICODE_STRING NtName
,
1159 PCURDIR CurrentDirectory
1164 RtlExpandEnvironmentStrings_U(
1166 PUNICODE_STRING Source
,
1167 PUNICODE_STRING Destination
,
1173 RtlGetCurrentDirectory_U(
1174 ULONG MaximumLength
,
1180 RtlGetFullPathName_U(
1181 const WCHAR
*dosname
,
1189 RtlIsNameLegalDOS8Dot3(
1190 IN PUNICODE_STRING UnicodeName
,
1191 IN PANSI_STRING AnsiName
,
1197 RtlQueryEnvironmentVariable_U(
1199 PUNICODE_STRING Name
,
1200 PUNICODE_STRING Value
1205 RtlSetCurrentDirectory_U(PUNICODE_STRING name
);
1209 RtlSetEnvironmentVariable(
1211 PUNICODE_STRING Name
,
1212 PUNICODE_STRING Value
1216 * Critical Section/Resource Functions
1220 RtlDeleteCriticalSection (
1221 IN PRTL_CRITICAL_SECTION CriticalSection
1226 RtlEnterCriticalSection(
1227 IN PRTL_CRITICAL_SECTION CriticalSection
1232 RtlInitializeCriticalSection(
1233 IN PRTL_CRITICAL_SECTION CriticalSection
1238 RtlInitializeCriticalSectionAndSpinCount(
1239 IN PRTL_CRITICAL_SECTION CriticalSection
,
1245 RtlLeaveCriticalSection(
1246 IN PRTL_CRITICAL_SECTION CriticalSection
1251 RtlpUnWaitCriticalSection(
1252 IN PRTL_CRITICAL_SECTION CriticalSection
1257 RtlpWaitForCriticalSection(
1258 IN PRTL_CRITICAL_SECTION CriticalSection
1263 RtlAcquireResourceExclusive(
1264 IN PRTL_RESOURCE Resource
,
1270 RtlAcquireResourceShared(
1271 IN PRTL_RESOURCE Resource
,
1277 RtlConvertExclusiveToShared(
1278 IN PRTL_RESOURCE Resource
1283 RtlConvertSharedToExclusive(
1284 IN PRTL_RESOURCE Resource
1290 IN PRTL_RESOURCE Resource
1296 IN PRTL_RESOURCE Resource
1301 RtlInitializeResource(
1302 IN PRTL_RESOURCE Resource
1308 IN PRTL_RESOURCE Resource
1312 * Compression Functions
1317 IN USHORT CompressionFormatAndEngine
,
1318 IN PUCHAR UncompressedBuffer
,
1319 IN ULONG UncompressedBufferSize
,
1320 OUT PUCHAR CompressedBuffer
,
1321 IN ULONG CompressedBufferSize
,
1322 IN ULONG UncompressedChunkSize
,
1323 OUT PULONG FinalCompressedSize
,
1329 RtlDecompressBuffer(
1330 IN USHORT CompressionFormat
,
1331 OUT PUCHAR UncompressedBuffer
,
1332 IN ULONG UncompressedBufferSize
,
1333 IN PUCHAR CompressedBuffer
,
1334 IN ULONG CompressedBufferSize
,
1335 OUT PULONG FinalUncompressedSize
1340 RtlGetCompressionWorkSpaceSize(
1341 IN USHORT CompressionFormatAndEngine
,
1342 OUT PULONG CompressBufferWorkSpaceSize
,
1343 OUT PULONG CompressFragmentWorkSpaceSize
1347 * Debug Info Functions
1351 RtlCreateQueryDebugBuffer(
1353 IN BOOLEAN EventPair
1358 RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer
);
1362 RtlQueryProcessDebugInformation(
1364 IN ULONG DebugInfoClassMask
,
1365 IN OUT PDEBUG_BUFFER DebugBuffer
1374 IN PRTL_BITMAP BitMapHeader
,
1375 IN ULONG StartingIndex
,
1382 IN PRTL_BITMAP BitMapHeader
,
1383 IN ULONG StartingIndex
,
1390 IN PRTL_BITMAP BitMapHeader
,
1391 IN ULONG StartingIndex
,
1392 IN ULONG NumberToClear
1398 IN PRTL_BITMAP BitMapHeader
,
1399 IN ULONG NumberToFind
,
1405 RtlFindClearBitsAndSet(
1406 IN PRTL_BITMAP BitMapHeader
,
1407 IN ULONG NumberToFind
,
1413 RtlInitializeBitMap(
1414 IN PRTL_BITMAP BitMapHeader
,
1415 IN PULONG BitMapBuffer
,
1416 IN ULONG SizeOfBitMap
1422 IN PRTL_BITMAP BitMapHeader
,
1423 IN ULONG StartingIndex
,
1424 IN ULONG NumberToSet
1435 WAITORTIMERCALLBACKFUNC Callback
,
1444 RtlCreateTimerQueue(PHANDLE TimerQueue
);
1451 HANDLE CompletionEvent
1465 RtlDeleteTimerQueueEx(
1467 HANDLE CompletionEvent
1472 RtlDeleteTimerQueue(HANDLE TimerQueue
);
1486 DbgBreakPoint(VOID
);
1489 * Handle Table Functions
1491 PRTL_HANDLE_TABLE_ENTRY
1494 IN PRTL_HANDLE_TABLE HandleTable
,
1500 RtlDestroyHandleTable(IN PRTL_HANDLE_TABLE HandleTable
);
1505 IN PRTL_HANDLE_TABLE HandleTable
,
1506 IN PRTL_HANDLE_TABLE_ENTRY Handle
1511 RtlInitializeHandleTable(
1513 IN ULONG HandleSize
,
1514 IN PRTL_HANDLE_TABLE HandleTable
1520 IN PRTL_HANDLE_TABLE HandleTable
,
1521 IN PRTL_HANDLE_TABLE_ENTRY Handle
1526 RtlIsValidIndexHandle(
1527 IN PRTL_HANDLE_TABLE HandleTable
,
1529 OUT PRTL_HANDLE_TABLE_ENTRY
*Handle
1538 IN PVOID BaseAddress
,
1542 OUT PRTL_MESSAGE_RESOURCE_ENTRY
*MessageResourceEntry
1547 RtlGetNtGlobalFlags(VOID
);
1551 RtlImageDirectoryEntryToData(
1561 PIMAGE_NT_HEADERS NtHeader
,
1564 PIMAGE_SECTION_HEADER
*SectionHeader
1569 RtlImageNtHeader(IN PVOID BaseAddress
);
1571 PIMAGE_SECTION_HEADER
1573 RtlImageRvaToSection(
1574 PIMAGE_NT_HEADERS NtHeader
,
1580 * Registry Functions
1584 RtlCheckRegistryKey(
1591 RtlFormatCurrentUserKeyPath(IN OUT PUNICODE_STRING KeyPath
);
1596 OUT HANDLE KeyHandle
,
1597 IN ACCESS_MASK DesiredAccess
,
1598 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1605 IN ACCESS_MASK DesiredAccess
,
1606 OUT PHANDLE KeyHandle
1611 RtlQueryRegistryValues(
1612 IN ULONG RelativeTo
,
1614 IN PRTL_QUERY_REGISTRY_TABLE QueryTable
,
1616 IN PVOID Environment
1621 RtlWriteRegistryValue(
1636 IN PUSHORT AnsiTableBase
,
1637 IN PUSHORT OemTableBase
,
1638 IN PUSHORT CaseTableBase
,
1639 OUT PNLSTABLEINFO NlsTable
1644 RtlInitCodePageTable(
1645 IN PUSHORT TableBase
,
1646 OUT PCPTABLEINFO CodePageTable
1651 RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable
);
1654 * Misc conversion functions
1658 RtlConvertLongToLargeInteger(IN LONG SignedInteger
);
1662 RtlEnlargedIntegerMultiply(
1669 RtlEnlargedUnsignedDivide(
1670 ULARGE_INTEGER Dividend
,
1677 RtlEnlargedUnsignedMultiply(
1684 RtlUniform(PULONG Seed
);
1691 RtlQueryTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1695 RtlSecondsSince1970ToTime(
1696 IN ULONG SecondsSince1970
,
1697 OUT PLARGE_INTEGER Time
1702 RtlSetTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1706 RtlTimeFieldsToTime(
1707 PTIME_FIELDS TimeFields
,
1713 RtlTimeToTimeFields(
1714 PLARGE_INTEGER Time
,
1715 PTIME_FIELDS TimeFields
1723 RtlVerifyVersionInfo(
1724 IN PRTL_OSVERSIONINFOEXW VersionInfo
,
1726 IN ULONGLONG ConditionMask
1731 RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation
);