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 ****************************************************************/
19 /* FIXME: FILE NEEDS SOME ALPHABETIZING AND REGROUP */
22 * Error and Exception Functions
26 RtlAddVectoredExceptionHandler(
27 IN ULONG FirstHandler
,
28 IN PVECTORED_EXCEPTION_HANDLER VectoredHandler
34 PVOID FailedAssertion
,
42 RtlEncodePointer(IN PVOID Pointer
);
46 RtlDecodePointer(IN PVOID Pointer
);
50 RtlNtStatusToDosError(IN NTSTATUS Status
);
54 RtlRaiseException(IN PEXCEPTION_RECORD ExceptionRecord
);
58 RtlRaiseStatus(NTSTATUS Status
);
63 PEXCEPTION_REGISTRATION RegistrationFrame
,
65 PEXCEPTION_RECORD ExceptionRecord
,
85 IN PVOID BaseAddress OPTIONAL
,
86 IN ULONG SizeToReserve OPTIONAL
,
87 IN ULONG SizeToCommit OPTIONAL
,
88 IN PVOID Lock OPTIONAL
,
89 IN PRTL_HEAP_DEFINITION Definition 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 PSECURITY_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
,
238 RtlAllocateAndInitializeSid(
239 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
240 IN UCHAR SubAuthorityCount
,
241 IN ULONG SubAuthority0
,
242 IN ULONG SubAuthority1
,
243 IN ULONG SubAuthority2
,
244 IN ULONG SubAuthority3
,
245 IN ULONG SubAuthority4
,
246 IN ULONG SubAuthority5
,
247 IN ULONG SubAuthority6
,
248 IN ULONG SubAuthority7
,
254 RtlAreAllAccessesGranted(
255 ACCESS_MASK GrantedAccess
,
256 ACCESS_MASK DesiredAccess
261 RtlAreAnyAccessesGranted(
262 ACCESS_MASK GrantedAccess
,
263 ACCESS_MASK DesiredAccess
275 RtlCopyLuidAndAttributesArray(
277 PLUID_AND_ATTRIBUTES Src
,
278 PLUID_AND_ATTRIBUTES Dest
283 RtlCopySidAndAttributesArray(
285 PSID_AND_ATTRIBUTES Src
,
287 PSID_AND_ATTRIBUTES Dest
,
289 PVOID
* RemainingSidArea
,
290 PULONG RemainingSidAreaSize
295 RtlConvertSidToUnicodeString(
296 OUT PUNICODE_STRING DestinationString
,
298 IN BOOLEAN AllocateDestinationString
319 RtlCreateSecurityDescriptor(
320 PSECURITY_DESCRIPTOR SecurityDescriptor
,
326 RtlCreateSecurityDescriptorRelative(
327 PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor
,
375 RtlGetControlSecurityDescriptor(
376 PSECURITY_DESCRIPTOR SecurityDescriptor
,
377 PSECURITY_DESCRIPTOR_CONTROL Control
,
383 RtlGetDaclSecurityDescriptor(
384 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
385 OUT PBOOLEAN DaclPresent
,
387 OUT PBOOLEAN DaclDefaulted
392 RtlGetSaclSecurityDescriptor(
393 PSECURITY_DESCRIPTOR SecurityDescriptor
,
394 PBOOLEAN SaclPresent
,
396 PBOOLEAN SaclDefaulted
401 RtlGetGroupSecurityDescriptor(
402 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
404 OUT PBOOLEAN GroupDefaulted
409 RtlGetOwnerSecurityDescriptor(
410 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
412 OUT PBOOLEAN OwnerDefaulted
417 RtlGetSecurityDescriptorRMControl(
418 PSECURITY_DESCRIPTOR SecurityDescriptor
,
422 PSID_IDENTIFIER_AUTHORITY
424 RtlIdentifierAuthoritySid(PSID Sid
);
428 RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);
434 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
435 IN UCHAR SubAuthorityCount
440 RtlLengthRequiredSid(IN UCHAR SubAuthorityCount
);
444 RtlLengthSid(IN PSID Sid
);
449 PACCESS_MASK AccessMask
,
450 PGENERIC_MAPPING GenericMapping
455 RtlQueryInformationAcl(
458 ULONG InformationLength
,
459 ACL_INFORMATION_CLASS InformationClass
464 RtlSelfRelativeToAbsoluteSD(
465 IN PSECURITY_DESCRIPTOR_RELATIVE SelfRelativeSD
,
466 OUT PSECURITY_DESCRIPTOR AbsoluteSD
,
467 IN PULONG AbsoluteSDSize
,
474 IN PSID PrimaryGroup
,
475 IN PULONG PrimaryGroupSize
480 RtlSetControlSecurityDescriptor(
481 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
482 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest
,
483 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
488 RtlSetDaclSecurityDescriptor (
489 PSECURITY_DESCRIPTOR SecurityDescriptor
,
492 BOOLEAN DaclDefaulted
497 RtlSetGroupSecurityDescriptor(
498 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
500 IN BOOLEAN GroupDefaulted
505 RtlSetInformationAcl(
508 ULONG InformationLength
,
509 ACL_INFORMATION_CLASS InformationClass
514 RtlSetOwnerSecurityDescriptor(
515 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
517 IN BOOLEAN OwnerDefaulted
522 RtlSetSaclSecurityDescriptor(
523 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
524 IN BOOLEAN SaclPresent
,
526 IN BOOLEAN SaclDefaulted
531 RtlSetSecurityDescriptorRMControl(
532 PSECURITY_DESCRIPTOR SecurityDescriptor
,
538 RtlSubAuthorityCountSid(
546 IN ULONG SubAuthority
551 RtlValidRelativeSecurityDescriptor(
552 IN PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptorInput
,
553 IN ULONG SecurityDescriptorLength
,
554 IN SECURITY_INFORMATION RequiredInformation
559 RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
563 RtlValidSid(IN PSID Sid
);
567 RtlValidAcl(PACL Acl
);
570 * Single-Character Functions
574 RtlLargeIntegerToChar(
575 IN PLARGE_INTEGER Value
,
583 RtlUpperChar(CHAR Source
);
587 RtlUpcaseUnicodeChar(WCHAR Source
);
591 RtlDowncaseUnicodeChar(IN WCHAR Source
);
606 IN ULONG Base OPTIONAL
,
607 IN ULONG Length OPTIONAL
,
613 RtlIntegerToUnicodeString(
616 IN OUT PUNICODE_STRING String
629 RtlUshortByteSwap(IN USHORT Source
);
632 * Unicode->Ansi String Functions
636 RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString
);
640 RtlUnicodeStringToAnsiString(
641 PANSI_STRING DestinationString
,
642 PUNICODE_STRING SourceString
,
643 BOOLEAN AllocateDestinationString
647 * Unicode->OEM String Functions
651 RtlUpcaseUnicodeStringToOemString(
652 POEM_STRING DestinationString
,
653 PUNICODE_STRING SourceString
,
654 BOOLEAN AllocateDestinationString
659 RtlUpcaseUnicodeStringToCountedOemString(
660 IN OUT POEM_STRING DestinationString
,
661 IN PUNICODE_STRING SourceString
,
662 IN BOOLEAN AllocateDestinationString
667 RtlUpcaseUnicodeString(
668 PUNICODE_STRING DestinationString
,
669 PCUNICODE_STRING SourceString
,
670 BOOLEAN AllocateDestinationString
675 RtlUnicodeStringToOemString(
676 POEM_STRING DestinationString
,
677 PUNICODE_STRING SourceString
,
678 BOOLEAN AllocateDestinationString
683 RtlUpcaseUnicodeToOemN(
687 PWCHAR UnicodeString
,
693 RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString
);
701 PWCHAR UnicodeString
,
706 * Unicode->MultiByte String Functions
710 RtlUnicodeToMultiByteN(
714 PWCHAR UnicodeString
,
720 RtlUpcaseUnicodeToMultiByteN(
724 PWCHAR UnicodeString
,
730 RtlUnicodeToMultiByteSize(
732 PWCHAR UnicodeString
,
737 * OEM to Unicode Functions
741 RtlOemStringToUnicodeSize(POEM_STRING AnsiString
);
745 RtlOemStringToUnicodeString(
746 PUNICODE_STRING DestinationString
,
747 POEM_STRING SourceString
,
748 BOOLEAN AllocateDestinationString
755 ULONG MaxBytesInUnicodeString
,
756 PULONG BytesInUnicodeString
,
758 ULONG BytesInOemString
762 * Ansi->Multibyte String Functions
766 * Ansi->Unicode String Functions
770 RtlAnsiStringToUnicodeString(
771 PUNICODE_STRING DestinationString
,
772 PANSI_STRING SourceString
,
773 BOOLEAN AllocateDestinationString
778 RtlAnsiStringToUnicodeSize(
779 PANSI_STRING AnsiString
784 RtlCreateUnicodeStringFromAsciiz(
785 OUT PUNICODE_STRING Destination
,
790 * Unicode String Functions
794 RtlAppendUnicodeToString(
795 PUNICODE_STRING Destination
,
801 RtlAppendUnicodeStringToString(
802 PUNICODE_STRING Destination
,
803 PUNICODE_STRING Source
808 RtlCompareUnicodeString(
809 PUNICODE_STRING String1
,
810 PUNICODE_STRING String2
,
811 BOOLEAN CaseInsensitive
816 RtlCopyUnicodeString(
817 PUNICODE_STRING DestinationString
,
818 PUNICODE_STRING SourceString
823 RtlCreateUnicodeString(
824 PUNICODE_STRING DestinationString
,
830 RtlEqualUnicodeString(
831 PCUNICODE_STRING String1
,
832 PCUNICODE_STRING String2
,
833 BOOLEAN CaseInsensitive
838 RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString
);
842 RtlInitUnicodeString(
843 IN OUT PUNICODE_STRING DestinationString
,
844 IN PCWSTR SourceString
);
848 RtlPrefixUnicodeString(
849 PUNICODE_STRING String1
,
850 PUNICODE_STRING String2
,
851 BOOLEAN CaseInsensitive
856 RtlUnicodeStringToInteger(
857 PUNICODE_STRING String
,
863 * Ansi String Functions
867 RtlFreeAnsiString(IN PANSI_STRING AnsiString
);
872 PANSI_STRING DestinationString
,
877 * OEM String Functions
881 RtlFreeOemString(IN POEM_STRING OemString
);
884 * MultiByte->Unicode String Functions
888 RtlMultiByteToUnicodeN(
889 PWCHAR UnicodeString
,
892 const PCHAR MbString
,
898 RtlMultiByteToUnicodeSize(
909 RtlAddAtomToAtomTable(
910 IN PRTL_ATOM_TABLE AtomTable
,
919 IN OUT PRTL_ATOM_TABLE
*AtomTable
924 RtlDeleteAtomFromAtomTable(
925 IN PRTL_ATOM_TABLE AtomTable
,
931 RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable
);
935 RtlQueryAtomInAtomTable(
936 IN PRTL_ATOM_TABLE AtomTable
,
938 IN OUT PULONG RefCount OPTIONAL
,
939 IN OUT PULONG PinCount OPTIONAL
,
940 IN OUT PWSTR AtomName OPTIONAL
,
941 IN OUT PULONG NameLength OPTIONAL
946 RtlLookupAtomInAtomTable(
947 IN PRTL_ATOM_TABLE AtomTable
,
958 IN
const VOID
*Source1
,
959 IN
const VOID
*Source2
,
966 IN PVOID Destination
,
972 * Process Management Functions
974 /* FIXME: Some of these will be split up into enviro/path functions */
978 RtlAcquirePebLock(VOID
);
982 RtlCreateProcessParameters (
983 OUT PRTL_USER_PROCESS_PARAMETERS
*ProcessParameters
,
984 IN PUNICODE_STRING ImagePathName OPTIONAL
,
985 IN PUNICODE_STRING DllPath OPTIONAL
,
986 IN PUNICODE_STRING CurrentDirectory OPTIONAL
,
987 IN PUNICODE_STRING CommandLine OPTIONAL
,
988 IN PWSTR Environment OPTIONAL
,
989 IN PUNICODE_STRING WindowTitle OPTIONAL
,
990 IN PUNICODE_STRING DesktopInfo OPTIONAL
,
991 IN PUNICODE_STRING ShellInfo OPTIONAL
,
992 IN PUNICODE_STRING RuntimeInfo OPTIONAL
997 RtlCreateUserProcess(
998 IN PUNICODE_STRING ImageFileName
,
1000 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
,
1001 IN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor OPTIONAL
,
1002 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor OPTIONAL
,
1003 IN HANDLE ParentProcess OPTIONAL
,
1004 IN BOOLEAN CurrentDirectory
,
1005 IN HANDLE DebugPort OPTIONAL
,
1006 IN HANDLE ExceptionPort OPTIONAL
,
1007 OUT PRTL_PROCESS_INFO ProcessInfo
1012 RtlDestroyProcessParameters(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
1016 RtlReleasePebLock(VOID
);
1020 RtlCreateEnvironment(
1027 RtlCreateUserThread(
1028 IN HANDLE ProcessHandle
,
1029 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
1030 IN BOOLEAN CreateSuspended
,
1031 IN LONG StackZeroBits
,
1032 IN OUT PULONG StackReserve
,
1033 IN OUT PULONG StackCommit
,
1034 IN PTHREAD_START_ROUTINE StartAddress
,
1036 IN OUT PHANDLE ThreadHandle
,
1037 IN OUT PCLIENT_ID ClientId
1040 PRTL_USER_PROCESS_PARAMETERS
1042 RtlDeNormalizeProcessParams(
1043 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
1048 RtlDestroyEnvironment(
1054 RtlExpandEnvironmentStrings_U(
1056 PUNICODE_STRING Source
,
1057 PUNICODE_STRING Destination
,
1063 RtlDoesFileExists_U(PWSTR FileName
);
1067 RtlDetermineDosPathNameType_U(PCWSTR Path
);
1082 RtlGetCurrentDirectory_U(
1083 ULONG MaximumLength
,
1089 RtlGetFullPathName_U(
1090 const WCHAR
*dosname
,
1096 PRTL_USER_PROCESS_PARAMETERS
1098 RtlNormalizeProcessParams(
1099 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
1104 RtlQueryEnvironmentVariable_U(
1106 PUNICODE_STRING Name
,
1107 PUNICODE_STRING Value
1112 RtlSetCurrentDirectory_U(PUNICODE_STRING name
);
1116 RtlSetEnvironmentVariable(
1118 PUNICODE_STRING Name
,
1119 PUNICODE_STRING Value
1123 * Critical Section/Resource Functions
1127 RtlDeleteCriticalSection (
1128 PRTL_CRITICAL_SECTION CriticalSection
1133 RtlEnterCriticalSection(
1134 PRTL_CRITICAL_SECTION CriticalSection
1139 RtlInitializeCriticalSection(
1140 PRTL_CRITICAL_SECTION CriticalSection
1145 RtlInitializeCriticalSectionAndSpinCount(
1146 PRTL_CRITICAL_SECTION CriticalSection
,
1152 RtlLeaveCriticalSection(
1153 PRTL_CRITICAL_SECTION CriticalSection
1157 * Compression Functions
1162 IN USHORT CompressionFormatAndEngine
,
1163 IN PUCHAR UncompressedBuffer
,
1164 IN ULONG UncompressedBufferSize
,
1165 OUT PUCHAR CompressedBuffer
,
1166 IN ULONG CompressedBufferSize
,
1167 IN ULONG UncompressedChunkSize
,
1168 OUT PULONG FinalCompressedSize
,
1174 RtlDecompressBuffer(
1175 IN USHORT CompressionFormat
,
1176 OUT PUCHAR UncompressedBuffer
,
1177 IN ULONG UncompressedBufferSize
,
1178 IN PUCHAR CompressedBuffer
,
1179 IN ULONG CompressedBufferSize
,
1180 OUT PULONG FinalUncompressedSize
1185 RtlGetCompressionWorkSpaceSize(
1186 IN USHORT CompressionFormatAndEngine
,
1187 OUT PULONG CompressBufferWorkSpaceSize
,
1188 OUT PULONG CompressFragmentWorkSpaceSize
1192 * Debug Info Functions
1196 RtlCreateQueryDebugBuffer(
1198 IN BOOLEAN EventPair
1203 RtlDestroyQueryDebugBuffer(IN PDEBUG_BUFFER DebugBuffer
);
1207 RtlQueryProcessDebugInformation(
1209 IN ULONG DebugInfoClassMask
,
1210 IN OUT PDEBUG_BUFFER DebugBuffer
1219 IN PRTL_BITMAP BitMapHeader
,
1220 IN ULONG StartingIndex
,
1227 IN PRTL_BITMAP BitMapHeader
,
1228 IN ULONG StartingIndex
,
1235 IN PRTL_BITMAP BitMapHeader
,
1236 IN ULONG StartingIndex
,
1237 IN ULONG NumberToClear
1243 PRTL_BITMAP BitMapHeader
,
1250 RtlFindClearBitsAndSet(
1251 PRTL_BITMAP BitMapHeader
,
1258 RtlInitializeBitMap(
1259 IN PRTL_BITMAP BitMapHeader
,
1260 IN PULONG BitMapBuffer
,
1261 IN ULONG SizeOfBitMap
1267 PRTL_BITMAP BitMapHeader
,
1268 ULONG StartingIndex
,
1280 WAITORTIMERCALLBACKFUNC Callback
,
1289 RtlCreateTimerQueue(PHANDLE TimerQueue
);
1296 HANDLE CompletionEvent
1310 RtlDeleteTimerQueueEx(
1312 HANDLE CompletionEvent
1317 RtlDeleteTimerQueue(HANDLE TimerQueue
);
1331 DbgBreakPoint(VOID
);
1334 * Handle Table Functions
1339 IN PRTL_HANDLE_TABLE HandleTable
,
1345 RtlDestroyHandleTable (IN PRTL_HANDLE_TABLE HandleTable
);
1350 IN PRTL_HANDLE_TABLE HandleTable
,
1351 IN PRTL_HANDLE Handle
1356 RtlInitializeHandleTable (
1358 IN ULONG HandleSize
,
1359 IN PRTL_HANDLE_TABLE HandleTable
1365 IN PRTL_HANDLE_TABLE HandleTable
,
1366 IN PRTL_HANDLE Handle
1371 RtlIsValidIndexHandle (
1372 IN PRTL_HANDLE_TABLE HandleTable
,
1373 IN OUT PRTL_HANDLE
*Handle
,
1383 IN PVOID BaseAddress
,
1387 OUT PRTL_MESSAGE_RESOURCE_ENTRY
*MessageResourceEntry
1392 RtlGetNtGlobalFlags(VOID
);
1396 RtlImageDirectoryEntryToData(
1406 PIMAGE_NT_HEADERS NtHeader
,
1409 PIMAGE_SECTION_HEADER
*SectionHeader
1414 RtlImageNtHeader(IN PVOID BaseAddress
);
1416 PIMAGE_SECTION_HEADER
1418 RtlImageRvaToSection(
1419 PIMAGE_NT_HEADERS NtHeader
,
1425 * Registry Functions
1429 RtlCheckRegistryKey(
1436 RtlFormatCurrentUserKeyPath(IN OUT PUNICODE_STRING KeyPath
);
1441 OUT HANDLE KeyHandle
,
1442 IN ACCESS_MASK DesiredAccess
,
1443 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1450 IN ACCESS_MASK DesiredAccess
,
1451 OUT PHANDLE KeyHandle
1456 RtlQueryRegistryValues(
1457 IN ULONG RelativeTo
,
1459 IN PRTL_QUERY_REGISTRY_TABLE QueryTable
,
1461 IN PVOID Environment
1466 RtlWriteRegistryValue(
1481 IN PUSHORT AnsiTableBase
,
1482 IN PUSHORT OemTableBase
,
1483 IN PUSHORT CaseTableBase
,
1484 OUT PNLSTABLEINFO NlsTable
1489 RtlInitCodePageTable(
1490 IN PUSHORT TableBase
,
1491 OUT PCPTABLEINFO CodePageTable
1496 RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable
);
1499 * Misc String Functions
1503 RtlDosPathNameToNtPathName_U(
1505 PUNICODE_STRING NtName
,
1507 PCURDIR CurrentDirectory
1512 RtlIsNameLegalDOS8Dot3(
1513 IN PUNICODE_STRING UnicodeName
,
1514 IN PANSI_STRING AnsiName
,
1527 * Misc conversion functions
1531 RtlConvertLongToLargeInteger(IN LONG SignedInteger
);
1535 RtlEnlargedIntegerMultiply(
1542 RtlEnlargedUnsignedDivide(
1543 ULARGE_INTEGER Dividend
,
1550 RtlEnlargedUnsignedMultiply(
1557 RtlUniform(PULONG Seed
);
1564 RtlQueryTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1568 RtlSecondsSince1970ToTime(
1569 IN ULONG SecondsSince1970
,
1570 OUT PLARGE_INTEGER Time
1575 RtlSetTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1579 RtlTimeFieldsToTime(
1580 PTIME_FIELDS TimeFields
,
1586 RtlTimeToTimeFields(
1587 PLARGE_INTEGER Time
,
1588 PTIME_FIELDS TimeFields
1596 RtlVerifyVersionInfo(
1597 IN PRTL_OSVERSIONINFOEXW VersionInfo
,
1599 IN ULONGLONG ConditionMask
1604 RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation
);
1607 * C Runtime Library Functions
1609 char *_itoa (int value
, char *string
, int radix
);
1610 wchar_t *_itow (int value
, wchar_t *string
, int radix
);
1611 int _snprintf(char * buf
, size_t cnt
, const char *fmt
, ...);
1612 int _snwprintf(wchar_t *buf
, size_t cnt
, const wchar_t *fmt
, ...);
1613 int _stricmp(const char *s1
, const char *s2
);
1614 char * _strlwr(char *x
);
1615 int _strnicmp(const char *s1
, const char *s2
, size_t n
);
1616 char * _strnset(char* szToFill
, int szFill
, size_t sizeMaxFill
);
1617 char * _strrev(char *s
);
1618 char * _strset(char* szToFill
, int szFill
);
1619 char * _strupr(char *x
);
1620 int _vsnprintf(char *buf
, size_t cnt
, const char *fmt
, va_list args
);
1621 int _wcsicmp (const wchar_t* cs
, const wchar_t* ct
);
1622 wchar_t * _wcslwr (wchar_t *x
);
1623 int _wcsnicmp (const wchar_t * cs
,const wchar_t * ct
,size_t count
);
1624 wchar_t* _wcsnset (wchar_t* wsToFill
, wchar_t wcFill
, size_t sizeMaxFill
);
1625 wchar_t * _wcsrev(wchar_t *s
);
1626 wchar_t *_wcsupr(wchar_t *x
);
1627 int atoi(const char *str
);
1628 long atol(const char *str
);
1635 int isxdigit(int c
);
1636 size_t mbstowcs (wchar_t *wcstr
, const char *mbstr
, size_t count
);
1637 int mbtowc (wchar_t *wchar
, const char *mbchar
, size_t count
);
1638 void * memchr(const void *s
, int c
, size_t n
);
1639 void * memcpy(void *to
, const void *from
, size_t count
);
1640 void * memmove(void *dest
,const void *src
, size_t count
);
1641 void * memset(void *src
, int val
, size_t count
);
1643 int sprintf(char * buf
, const char *fmt
, ...);
1644 void srand(unsigned seed
);
1645 char * strcat(char *s
, const char *append
);
1646 char * strchr(const char *s
, int c
);
1647 int strcmp(const char *s1
, const char *s2
);
1648 char * strcpy(char *to
, const char *from
);
1649 size_t strlen(const char *str
);
1650 char * strncat(char *dst
, const char *src
, size_t n
);
1651 int strncmp(const char *s1
, const char *s2
, size_t n
);
1652 char *strncpy(char *dst
, const char *src
, size_t n
);
1653 char *strrchr(const char *s
, int c
);
1654 size_t strspn(const char *s1
, const char *s2
);
1655 char *strstr(const char *s
, const char *find
);
1656 int swprintf(wchar_t *buf
, const wchar_t *fmt
, ...);
1659 wchar_t towlower(wchar_t c
);
1660 wchar_t towupper(wchar_t c
);
1661 int vsprintf(char *buf
, const char *fmt
, va_list args
);
1662 wchar_t * wcscat(wchar_t *dest
, const wchar_t *src
);
1663 wchar_t * wcschr(const wchar_t *str
, wchar_t ch
);
1664 int wcscmp(const wchar_t *cs
, const wchar_t *ct
);
1665 wchar_t* wcscpy(wchar_t* str1
, const wchar_t* str2
);
1666 size_t wcscspn(const wchar_t *str
,const wchar_t *reject
);
1667 size_t wcslen(const wchar_t *s
);
1668 wchar_t * wcsncat(wchar_t *dest
, const wchar_t *src
, size_t count
);
1669 int wcsncmp(const wchar_t *cs
, const wchar_t *ct
, size_t count
);
1670 wchar_t * wcsncpy(wchar_t *dest
, const wchar_t *src
, size_t count
);
1671 wchar_t * wcsrchr(const wchar_t *str
, wchar_t ch
);
1672 size_t wcsspn(const wchar_t *str
,const wchar_t *accept
);
1673 wchar_t *wcsstr(const wchar_t *s
,const wchar_t *b
);
1674 size_t wcstombs (char *mbstr
, const wchar_t *wcstr
, size_t count
);
1675 int wctomb (char *mbchar
, wchar_t wchar
);