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 #include <ddk/ntnls.h>
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 ULONG SizeToReserve OPTIONAL
,
85 IN ULONG SizeToCommit OPTIONAL
,
86 IN PVOID Lock OPTIONAL
,
87 IN PRTL_HEAP_DEFINITION Definition 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 PSECURITY_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 PSECURITY_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 PSECURITY_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 PSECURITY_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
);
568 * Single-Character Functions
572 RtlLargeIntegerToChar(
573 IN PLARGE_INTEGER Value
,
581 RtlUpperChar(CHAR Source
);
585 RtlUpcaseUnicodeChar(WCHAR Source
);
589 RtlDowncaseUnicodeChar(IN WCHAR Source
);
604 IN ULONG Base OPTIONAL
,
605 IN ULONG Length OPTIONAL
,
611 RtlIntegerToUnicodeString(
614 IN OUT PUNICODE_STRING String
627 RtlUshortByteSwap(IN USHORT Source
);
630 * Unicode->Ansi String Functions
634 RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString
);
638 RtlUnicodeStringToAnsiString(
639 PANSI_STRING DestinationString
,
640 PUNICODE_STRING SourceString
,
641 BOOLEAN AllocateDestinationString
645 * Unicode->OEM String Functions
649 RtlUpcaseUnicodeStringToOemString(
650 POEM_STRING DestinationString
,
651 PUNICODE_STRING SourceString
,
652 BOOLEAN AllocateDestinationString
657 RtlUpcaseUnicodeStringToCountedOemString(
658 IN OUT POEM_STRING DestinationString
,
659 IN PUNICODE_STRING SourceString
,
660 IN BOOLEAN AllocateDestinationString
665 RtlUpcaseUnicodeString(
666 PUNICODE_STRING DestinationString
,
667 PCUNICODE_STRING SourceString
,
668 BOOLEAN AllocateDestinationString
673 RtlUnicodeStringToOemString(
674 POEM_STRING DestinationString
,
675 PUNICODE_STRING SourceString
,
676 BOOLEAN AllocateDestinationString
681 RtlUpcaseUnicodeToOemN(
685 PWCHAR UnicodeString
,
691 RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString
);
699 PWCHAR UnicodeString
,
704 * Unicode->MultiByte String Functions
708 RtlUnicodeToMultiByteN(
712 PWCHAR UnicodeString
,
718 RtlUpcaseUnicodeToMultiByteN(
722 PWCHAR UnicodeString
,
728 RtlUnicodeToMultiByteSize(
730 PWCHAR UnicodeString
,
735 * OEM to Unicode Functions
739 RtlOemStringToUnicodeSize(POEM_STRING AnsiString
);
743 RtlOemStringToUnicodeString(
744 PUNICODE_STRING DestinationString
,
745 POEM_STRING SourceString
,
746 BOOLEAN AllocateDestinationString
753 ULONG MaxBytesInUnicodeString
,
754 PULONG BytesInUnicodeString
,
756 ULONG BytesInOemString
760 * Ansi->Unicode String Functions
764 RtlAnsiStringToUnicodeString(
765 PUNICODE_STRING DestinationString
,
766 PANSI_STRING SourceString
,
767 BOOLEAN AllocateDestinationString
772 RtlAnsiStringToUnicodeSize(
773 PANSI_STRING AnsiString
778 RtlCreateUnicodeStringFromAsciiz(
779 OUT PUNICODE_STRING Destination
,
784 * Unicode String Functions
788 RtlAppendUnicodeToString(
789 PUNICODE_STRING Destination
,
795 RtlAppendUnicodeStringToString(
796 PUNICODE_STRING Destination
,
797 PUNICODE_STRING Source
802 RtlCompareUnicodeString(
803 PUNICODE_STRING String1
,
804 PUNICODE_STRING String2
,
805 BOOLEAN CaseInsensitive
810 RtlCopyUnicodeString(
811 PUNICODE_STRING DestinationString
,
812 PUNICODE_STRING SourceString
817 RtlCreateUnicodeString(
818 PUNICODE_STRING DestinationString
,
824 RtlEqualUnicodeString(
825 PCUNICODE_STRING String1
,
826 PCUNICODE_STRING String2
,
827 BOOLEAN CaseInsensitive
832 RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString
);
836 RtlInitUnicodeString(
837 IN OUT PUNICODE_STRING DestinationString
,
838 IN PCWSTR SourceString
);
850 RtlPrefixUnicodeString(
851 PUNICODE_STRING String1
,
852 PUNICODE_STRING String2
,
853 BOOLEAN CaseInsensitive
858 RtlUnicodeStringToInteger(
859 PUNICODE_STRING String
,
866 RtlHashUnicodeString(
867 IN CONST UNICODE_STRING
*String
,
868 IN BOOLEAN CaseInSensitive
,
869 IN ULONG HashAlgorithm
,
870 OUT PULONG HashValue
);
873 * Ansi String Functions
877 RtlFreeAnsiString(IN PANSI_STRING AnsiString
);
882 PANSI_STRING DestinationString
,
887 * OEM String Functions
891 RtlFreeOemString(IN POEM_STRING OemString
);
894 * MultiByte->Unicode String Functions
898 RtlMultiByteToUnicodeN(
899 PWCHAR UnicodeString
,
902 const PCHAR MbString
,
908 RtlMultiByteToUnicodeSize(
919 RtlAddAtomToAtomTable(
920 IN PRTL_ATOM_TABLE AtomTable
,
929 IN OUT PRTL_ATOM_TABLE
*AtomTable
934 RtlDeleteAtomFromAtomTable(
935 IN PRTL_ATOM_TABLE AtomTable
,
941 RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable
);
945 RtlQueryAtomInAtomTable(
946 IN PRTL_ATOM_TABLE AtomTable
,
948 IN OUT PULONG RefCount OPTIONAL
,
949 IN OUT PULONG PinCount OPTIONAL
,
950 IN OUT PWSTR AtomName OPTIONAL
,
951 IN OUT PULONG NameLength OPTIONAL
956 RtlLookupAtomInAtomTable(
957 IN PRTL_ATOM_TABLE AtomTable
,
968 IN
const VOID
*Source1
,
969 IN
const VOID
*Source2
,
976 IN PVOID Destination
,
982 * Process Management Functions
986 RtlAcquirePebLock(VOID
);
990 RtlCreateProcessParameters (
991 OUT PRTL_USER_PROCESS_PARAMETERS
*ProcessParameters
,
992 IN PUNICODE_STRING ImagePathName OPTIONAL
,
993 IN PUNICODE_STRING DllPath OPTIONAL
,
994 IN PUNICODE_STRING CurrentDirectory OPTIONAL
,
995 IN PUNICODE_STRING CommandLine OPTIONAL
,
996 IN PWSTR Environment OPTIONAL
,
997 IN PUNICODE_STRING WindowTitle OPTIONAL
,
998 IN PUNICODE_STRING DesktopInfo OPTIONAL
,
999 IN PUNICODE_STRING ShellInfo OPTIONAL
,
1000 IN PUNICODE_STRING RuntimeInfo OPTIONAL
1005 RtlCreateUserProcess(
1006 IN PUNICODE_STRING ImageFileName
,
1007 IN ULONG Attributes
,
1008 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
,
1009 IN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor OPTIONAL
,
1010 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor OPTIONAL
,
1011 IN HANDLE ParentProcess OPTIONAL
,
1012 IN BOOLEAN CurrentDirectory
,
1013 IN HANDLE DebugPort OPTIONAL
,
1014 IN HANDLE ExceptionPort OPTIONAL
,
1015 OUT PRTL_PROCESS_INFO ProcessInfo
1020 RtlCreateUserThread(
1021 IN HANDLE ProcessHandle
,
1022 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
1023 IN BOOLEAN CreateSuspended
,
1024 IN LONG StackZeroBits
,
1025 IN OUT PULONG StackReserve
,
1026 IN OUT PULONG StackCommit
,
1027 IN PTHREAD_START_ROUTINE StartAddress
,
1029 IN OUT PHANDLE ThreadHandle
,
1030 IN OUT PCLIENT_ID ClientId
1033 PRTL_USER_PROCESS_PARAMETERS
1035 RtlDeNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1039 RtlDestroyProcessParameters(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1041 PRTL_USER_PROCESS_PARAMETERS
1043 RtlNormalizeProcessParams(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1047 RtlReleasePebLock(VOID
);
1050 * Environment/Path Functions
1054 RtlCreateEnvironment(
1061 RtlDestroyEnvironment(PWSTR Environment
);
1065 RtlDoesFileExists_U(PWSTR FileName
);
1069 RtlDetermineDosPathNameType_U(PCWSTR Path
);
1084 RtlDosPathNameToNtPathName_U(
1086 PUNICODE_STRING NtName
,
1088 PCURDIR CurrentDirectory
1093 RtlExpandEnvironmentStrings_U(
1095 PUNICODE_STRING Source
,
1096 PUNICODE_STRING Destination
,
1102 RtlGetCurrentDirectory_U(
1103 ULONG MaximumLength
,
1109 RtlGetFullPathName_U(
1110 const WCHAR
*dosname
,
1118 RtlIsNameLegalDOS8Dot3(
1119 IN PUNICODE_STRING UnicodeName
,
1120 IN PANSI_STRING AnsiName
,
1126 RtlQueryEnvironmentVariable_U(
1128 PUNICODE_STRING Name
,
1129 PUNICODE_STRING Value
1134 RtlSetCurrentDirectory_U(PUNICODE_STRING name
);
1138 RtlSetEnvironmentVariable(
1140 PUNICODE_STRING Name
,
1141 PUNICODE_STRING Value
1145 * Critical Section/Resource Functions
1149 RtlDeleteCriticalSection (
1150 PRTL_CRITICAL_SECTION CriticalSection
1155 RtlEnterCriticalSection(
1156 PRTL_CRITICAL_SECTION CriticalSection
1161 RtlInitializeCriticalSection(
1162 PRTL_CRITICAL_SECTION CriticalSection
1167 RtlInitializeCriticalSectionAndSpinCount(
1168 PRTL_CRITICAL_SECTION CriticalSection
,
1174 RtlLeaveCriticalSection(
1175 PRTL_CRITICAL_SECTION CriticalSection
1180 RtlAcquireResourceExclusive(
1181 IN PRTL_RESOURCE Resource
,
1187 RtlAcquireResourceShared(
1188 IN PRTL_RESOURCE Resource
,
1194 RtlConvertExclusiveToShared(
1195 IN PRTL_RESOURCE Resource
1200 RtlConvertSharedToExclusive(
1201 IN PRTL_RESOURCE Resource
1207 IN PRTL_RESOURCE Resource
1213 IN PRTL_RESOURCE Resource
1218 RtlInitializeResource(
1219 IN PRTL_RESOURCE Resource
1225 IN PRTL_RESOURCE Resource
1229 * Compression Functions
1234 IN USHORT CompressionFormatAndEngine
,
1235 IN PUCHAR UncompressedBuffer
,
1236 IN ULONG UncompressedBufferSize
,
1237 OUT PUCHAR CompressedBuffer
,
1238 IN ULONG CompressedBufferSize
,
1239 IN ULONG UncompressedChunkSize
,
1240 OUT PULONG FinalCompressedSize
,
1246 RtlDecompressBuffer(
1247 IN USHORT CompressionFormat
,
1248 OUT PUCHAR UncompressedBuffer
,
1249 IN ULONG UncompressedBufferSize
,
1250 IN PUCHAR CompressedBuffer
,
1251 IN ULONG CompressedBufferSize
,
1252 OUT PULONG FinalUncompressedSize
1257 RtlGetCompressionWorkSpaceSize(
1258 IN USHORT CompressionFormatAndEngine
,
1259 OUT PULONG CompressBufferWorkSpaceSize
,
1260 OUT PULONG CompressFragmentWorkSpaceSize
1264 * Debug Info Functions
1268 RtlCreateQueryDebugBuffer(
1270 IN BOOLEAN EventPair
1275 RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer
);
1279 RtlQueryProcessDebugInformation(
1281 IN ULONG DebugInfoClassMask
,
1282 IN OUT PDEBUG_BUFFER DebugBuffer
1291 IN PRTL_BITMAP BitMapHeader
,
1292 IN ULONG StartingIndex
,
1299 IN PRTL_BITMAP BitMapHeader
,
1300 IN ULONG StartingIndex
,
1307 IN PRTL_BITMAP BitMapHeader
,
1308 IN ULONG StartingIndex
,
1309 IN ULONG NumberToClear
1315 IN PRTL_BITMAP BitMapHeader
,
1316 IN ULONG NumberToFind
,
1322 RtlFindClearBitsAndSet(
1323 IN PRTL_BITMAP BitMapHeader
,
1324 IN ULONG NumberToFind
,
1330 RtlInitializeBitMap(
1331 IN PRTL_BITMAP BitMapHeader
,
1332 IN PULONG BitMapBuffer
,
1333 IN ULONG SizeOfBitMap
1339 IN PRTL_BITMAP BitMapHeader
,
1340 IN ULONG StartingIndex
,
1341 IN ULONG NumberToSet
1352 WAITORTIMERCALLBACKFUNC Callback
,
1361 RtlCreateTimerQueue(PHANDLE TimerQueue
);
1368 HANDLE CompletionEvent
1382 RtlDeleteTimerQueueEx(
1384 HANDLE CompletionEvent
1389 RtlDeleteTimerQueue(HANDLE TimerQueue
);
1403 DbgBreakPoint(VOID
);
1406 * Handle Table Functions
1408 PRTL_HANDLE_TABLE_ENTRY
1411 IN PRTL_HANDLE_TABLE HandleTable
,
1417 RtlDestroyHandleTable(IN PRTL_HANDLE_TABLE HandleTable
);
1422 IN PRTL_HANDLE_TABLE HandleTable
,
1423 IN PRTL_HANDLE_TABLE_ENTRY Handle
1428 RtlInitializeHandleTable(
1430 IN ULONG HandleSize
,
1431 IN PRTL_HANDLE_TABLE HandleTable
1437 IN PRTL_HANDLE_TABLE HandleTable
,
1438 IN PRTL_HANDLE_TABLE_ENTRY Handle
1443 RtlIsValidIndexHandle(
1444 IN PRTL_HANDLE_TABLE HandleTable
,
1445 IN OUT PRTL_HANDLE_TABLE_ENTRY
*Handle
,
1455 IN PVOID BaseAddress
,
1459 OUT PRTL_MESSAGE_RESOURCE_ENTRY
*MessageResourceEntry
1464 RtlGetNtGlobalFlags(VOID
);
1468 RtlImageDirectoryEntryToData(
1478 PIMAGE_NT_HEADERS NtHeader
,
1481 PIMAGE_SECTION_HEADER
*SectionHeader
1486 RtlImageNtHeader(IN PVOID BaseAddress
);
1488 PIMAGE_SECTION_HEADER
1490 RtlImageRvaToSection(
1491 PIMAGE_NT_HEADERS NtHeader
,
1497 * Registry Functions
1501 RtlCheckRegistryKey(
1508 RtlFormatCurrentUserKeyPath(IN OUT PUNICODE_STRING KeyPath
);
1513 OUT HANDLE KeyHandle
,
1514 IN ACCESS_MASK DesiredAccess
,
1515 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1522 IN ACCESS_MASK DesiredAccess
,
1523 OUT PHANDLE KeyHandle
1528 RtlQueryRegistryValues(
1529 IN ULONG RelativeTo
,
1531 IN PRTL_QUERY_REGISTRY_TABLE QueryTable
,
1533 IN PVOID Environment
1538 RtlWriteRegistryValue(
1553 IN PUSHORT AnsiTableBase
,
1554 IN PUSHORT OemTableBase
,
1555 IN PUSHORT CaseTableBase
,
1556 OUT PNLSTABLEINFO NlsTable
1561 RtlInitCodePageTable(
1562 IN PUSHORT TableBase
,
1563 OUT PCPTABLEINFO CodePageTable
1568 RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable
);
1571 * Misc conversion functions
1575 RtlConvertLongToLargeInteger(IN LONG SignedInteger
);
1579 RtlEnlargedIntegerMultiply(
1586 RtlEnlargedUnsignedDivide(
1587 ULARGE_INTEGER Dividend
,
1594 RtlEnlargedUnsignedMultiply(
1601 RtlUniform(PULONG Seed
);
1608 RtlQueryTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1612 RtlSecondsSince1970ToTime(
1613 IN ULONG SecondsSince1970
,
1614 OUT PLARGE_INTEGER Time
1619 RtlSetTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1623 RtlTimeFieldsToTime(
1624 PTIME_FIELDS TimeFields
,
1630 RtlTimeToTimeFields(
1631 PLARGE_INTEGER Time
,
1632 PTIME_FIELDS TimeFields
1640 RtlVerifyVersionInfo(
1641 IN PRTL_OSVERSIONINFOEXW VersionInfo
,
1643 IN ULONGLONG ConditionMask
1648 RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation
);
1651 * C Runtime Library Functions
1653 char *_itoa (int value
, char *string
, int radix
);
1654 wchar_t *_itow (int value
, wchar_t *string
, int radix
);
1655 int _snprintf(char * buf
, size_t cnt
, const char *fmt
, ...);
1656 int _snwprintf(wchar_t *buf
, size_t cnt
, const wchar_t *fmt
, ...);
1657 int _stricmp(const char *s1
, const char *s2
);
1658 char * _strlwr(char *x
);
1659 int _strnicmp(const char *s1
, const char *s2
, size_t n
);
1660 char * _strnset(char* szToFill
, int szFill
, size_t sizeMaxFill
);
1661 char * _strrev(char *s
);
1662 char * _strset(char* szToFill
, int szFill
);
1663 char * _strupr(char *x
);
1664 int _vsnprintf(char *buf
, size_t cnt
, const char *fmt
, va_list args
);
1665 int _wcsicmp (const wchar_t* cs
, const wchar_t* ct
);
1666 wchar_t * _wcslwr (wchar_t *x
);
1667 int _wcsnicmp (const wchar_t * cs
,const wchar_t * ct
,size_t count
);
1668 wchar_t* _wcsnset (wchar_t* wsToFill
, wchar_t wcFill
, size_t sizeMaxFill
);
1669 wchar_t * _wcsrev(wchar_t *s
);
1670 wchar_t *_wcsupr(wchar_t *x
);
1671 int atoi(const char *str
);
1672 long atol(const char *str
);
1679 int isxdigit(int c
);
1680 size_t mbstowcs (wchar_t *wcstr
, const char *mbstr
, size_t count
);
1681 int mbtowc (wchar_t *wchar
, const char *mbchar
, size_t count
);
1682 void * memchr(const void *s
, int c
, size_t n
);
1683 void * memcpy(void *to
, const void *from
, size_t count
);
1684 void * memmove(void *dest
,const void *src
, size_t count
);
1685 void * memset(void *src
, int val
, size_t count
);
1687 int sprintf(char * buf
, const char *fmt
, ...);
1688 void srand(unsigned seed
);
1689 char * strcat(char *s
, const char *append
);
1690 char * strchr(const char *s
, int c
);
1691 int strcmp(const char *s1
, const char *s2
);
1692 char * strcpy(char *to
, const char *from
);
1693 size_t strlen(const char *str
);
1694 char * strncat(char *dst
, const char *src
, size_t n
);
1695 int strncmp(const char *s1
, const char *s2
, size_t n
);
1696 char *strncpy(char *dst
, const char *src
, size_t n
);
1697 char *strrchr(const char *s
, int c
);
1698 size_t strspn(const char *s1
, const char *s2
);
1699 char *strstr(const char *s
, const char *find
);
1700 int swprintf(wchar_t *buf
, const wchar_t *fmt
, ...);
1703 wchar_t towlower(wchar_t c
);
1704 wchar_t towupper(wchar_t c
);
1705 int vsprintf(char *buf
, const char *fmt
, va_list args
);
1706 wchar_t * wcscat(wchar_t *dest
, const wchar_t *src
);
1707 wchar_t * wcschr(const wchar_t *str
, wchar_t ch
);
1708 int wcscmp(const wchar_t *cs
, const wchar_t *ct
);
1709 wchar_t* wcscpy(wchar_t* str1
, const wchar_t* str2
);
1710 size_t wcscspn(const wchar_t *str
,const wchar_t *reject
);
1711 size_t wcslen(const wchar_t *s
);
1712 wchar_t * wcsncat(wchar_t *dest
, const wchar_t *src
, size_t count
);
1713 int wcsncmp(const wchar_t *cs
, const wchar_t *ct
, size_t count
);
1714 wchar_t * wcsncpy(wchar_t *dest
, const wchar_t *src
, size_t count
);
1715 wchar_t * wcsrchr(const wchar_t *str
, wchar_t ch
);
1716 size_t wcsspn(const wchar_t *str
,const wchar_t *accept
);
1717 wchar_t *wcsstr(const wchar_t *s
,const wchar_t *b
);
1718 size_t wcstombs (char *mbstr
, const wchar_t *wcstr
, size_t count
);
1719 int wctomb (char *mbchar
, wchar_t wchar
);