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 **************************************************************/
13 #include <ndk/rtltypes.h>
14 #include <ndk/pstypes.h>
16 /* PROTOTYPES ****************************************************************/
18 /* FIXME: FILE NEEDS TO BE CLEANED UP AT THE END WHEN ALL THE FUNCTIONS HAVE BEEN ADDED */
24 IN PLIST_ENTRY ListHead
)
26 ListHead
->Flink
= ListHead
->Blink
= ListHead
;
32 IN PLIST_ENTRY ListHead
,
36 OldFlink
= ListHead
->Flink
;
37 Entry
->Flink
= OldFlink
;
38 Entry
->Blink
= ListHead
;
39 OldFlink
->Blink
= Entry
;
40 ListHead
->Flink
= Entry
;
46 IN PLIST_ENTRY ListHead
,
50 OldBlink
= ListHead
->Blink
;
51 Entry
->Flink
= ListHead
;
52 Entry
->Blink
= OldBlink
;
53 OldBlink
->Flink
= Entry
;
54 ListHead
->Blink
= Entry
;
57 #define IsListEmpty(ListHead) \
58 ((ListHead)->Flink == (ListHead))
60 #define PopEntryList(ListHead) \
63 PSINGLE_LIST_ENTRY _FirstEntry; \
64 _FirstEntry = (ListHead)->Next; \
65 if (_FirstEntry != NULL) \
66 (ListHead)->Next = _FirstEntry->Next; \
69 #define PushEntryList(_ListHead, _Entry) \
70 (_Entry)->Next = (_ListHead)->Next; \
71 (_ListHead)->Next = (_Entry); \
81 OldFlink
= Entry
->Flink
;
82 OldBlink
= Entry
->Blink
;
83 OldFlink
->Blink
= OldBlink
;
84 OldBlink
->Flink
= OldFlink
;
85 return (OldFlink
== OldBlink
);
91 IN PLIST_ENTRY ListHead
)
96 Entry
= ListHead
->Flink
;
98 ListHead
->Flink
= Flink
;
99 Flink
->Blink
= ListHead
;
106 IN PLIST_ENTRY ListHead
)
111 Entry
= ListHead
->Blink
;
112 Blink
= Entry
->Blink
;
113 ListHead
->Blink
= Blink
;
114 Blink
->Flink
= ListHead
;
118 #define IsFirstEntry(ListHead, Entry) \
119 ((ListHead)->Flink == Entry)
121 #define IsLastEntry(ListHead, Entry) \
122 ((ListHead)->Blink == Entry)
124 #define InsertAscendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
126 PLIST_ENTRY current;\
128 current = (ListHead)->Flink;\
129 while (current != (ListHead))\
131 if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >\
132 (NewEntry)->SortField)\
136 current = current->Flink;\
139 InsertTailList(current, &((NewEntry)->ListEntryField));\
142 #define InsertDescendingListFIFO(ListHead, Type, ListEntryField, NewEntry, SortField)\
144 PLIST_ENTRY current;\
146 current = (ListHead)->Flink;\
147 while (current != (ListHead))\
149 if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <\
150 (NewEntry)->SortField)\
154 current = current->Flink;\
157 InsertTailList(current, &((NewEntry)->ListEntryField));\
160 #define InsertAscendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
162 PLIST_ENTRY current;\
164 current = (ListHead)->Flink;\
165 while (current != (ListHead))\
167 if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField >=\
168 (NewEntry)->SortField)\
172 current = current->Flink;\
175 InsertTailList(current, &((NewEntry)->ListEntryField));\
178 #define InsertDescendingList(ListHead, Type, ListEntryField, NewEntry, SortField)\
180 PLIST_ENTRY current;\
182 current = (ListHead)->Flink;\
183 while (current != (ListHead))\
185 if (CONTAINING_RECORD(current, Type, ListEntryField)->SortField <=\
186 (NewEntry)->SortField)\
190 current = current->Flink;\
193 InsertTailList(current, &((NewEntry)->ListEntryField));\
214 PVOID FailedAssertion
,
222 RtlNtStatusToDosError(IN NTSTATUS Status
);
226 RtlRaiseException(IN PEXCEPTION_RECORD ExceptionRecord
);
230 RtlRaiseStatus(NTSTATUS Status
);
235 PEXCEPTION_REGISTRATION RegistrationFrame
,
237 PEXCEPTION_RECORD ExceptionRecord
,
248 IN HANDLE HeapHandle
,
257 IN PVOID BaseAddress OPTIONAL
,
258 IN ULONG SizeToReserve OPTIONAL
,
259 IN ULONG SizeToCommit OPTIONAL
,
260 IN PVOID Lock OPTIONAL
,
261 IN PRTL_HEAP_DEFINITION Definition OPTIONAL
266 RtlDestroyHeap(HANDLE hheap
);
271 IN HANDLE HeapHandle
,
287 RtlLockHeap(IN HANDLE Heap
);
291 RtlUnlockHeap(IN HANDLE Heap
);
298 IN PVOID MemoryPointer
309 #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
317 RtlAbsoluteToSelfRelativeSD(
318 IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor
,
319 IN OUT PSECURITY_DESCRIPTOR_RELATIVE SelfRelativeSecurityDescriptor
,
320 IN PULONG BufferLength
325 RtlAddAccessAllowedAce(
328 ACCESS_MASK AccessMask
,
334 RtlAllocateAndInitializeSid(
335 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
336 IN UCHAR SubAuthorityCount
,
337 IN ULONG SubAuthority0
,
338 IN ULONG SubAuthority1
,
339 IN ULONG SubAuthority2
,
340 IN ULONG SubAuthority3
,
341 IN ULONG SubAuthority4
,
342 IN ULONG SubAuthority5
,
343 IN ULONG SubAuthority6
,
344 IN ULONG SubAuthority7
,
357 RtlCopyLuidAndAttributesArray(
359 PLUID_AND_ATTRIBUTES Src
,
360 PLUID_AND_ATTRIBUTES Dest
365 RtlCopySidAndAttributesArray(
367 PSID_AND_ATTRIBUTES Src
,
369 PSID_AND_ATTRIBUTES Dest
,
371 PVOID
* RemainingSidArea
,
372 PULONG RemainingSidAreaSize
377 RtlConvertSidToUnicodeString(
378 OUT PUNICODE_STRING DestinationString
,
380 IN BOOLEAN AllocateDestinationString
401 RtlCreateSecurityDescriptor(
402 PSECURITY_DESCRIPTOR SecurityDescriptor
,
408 RtlCreateSecurityDescriptorRelative(
409 PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor
,
428 RtlGetDaclSecurityDescriptor(
429 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
430 OUT PBOOLEAN DaclPresent
,
432 OUT PBOOLEAN DaclDefaulted
437 RtlGetSaclSecurityDescriptor(
438 PSECURITY_DESCRIPTOR SecurityDescriptor
,
439 PBOOLEAN SaclPresent
,
441 PBOOLEAN SaclDefaulted
446 RtlGetGroupSecurityDescriptor(
447 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
449 OUT PBOOLEAN GroupDefaulted
454 RtlGetOwnerSecurityDescriptor(
455 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
457 OUT PBOOLEAN OwnerDefaulted
464 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority
,
465 IN UCHAR SubAuthorityCount
470 RtlLengthRequiredSid(IN UCHAR SubAuthorityCount
);
474 RtlLengthSid(IN PSID Sid
);
476 #if (VER_PRODUCTBUILD >= 2195)
480 RtlSelfRelativeToAbsoluteSD(
481 IN PSECURITY_DESCRIPTOR SelfRelativeSD
,
482 OUT PSECURITY_DESCRIPTOR AbsoluteSD
,
483 IN PULONG AbsoluteSDSize
,
490 IN PSID PrimaryGroup
,
491 IN PULONG PrimaryGroupSize
494 #endif /* (VER_PRODUCTBUILD >= 2195) */
498 RtlSetDaclSecurityDescriptor (
499 PSECURITY_DESCRIPTOR SecurityDescriptor
,
502 BOOLEAN DaclDefaulted
507 RtlSetGroupSecurityDescriptor(
508 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
510 IN BOOLEAN GroupDefaulted
515 RtlSetOwnerSecurityDescriptor(
516 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
518 IN BOOLEAN OwnerDefaulted
523 RtlSetSaclSecurityDescriptor(
524 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
525 IN BOOLEAN SaclPresent
,
527 IN BOOLEAN SaclDefaulted
532 RtlSubAuthorityCountSid(
540 IN ULONG SubAuthority
545 RtlValidSid(IN PSID Sid
);
549 RtlValidAcl(PACL Acl
);
552 * Single-Character Functions
556 RtlLargeIntegerToChar(
557 IN PLARGE_INTEGER Value
,
565 RtlUpperChar(CHAR Source
);
569 RtlUpcaseUnicodeChar(WCHAR Source
);
573 RtlDowncaseUnicodeChar(IN WCHAR Source
);
588 IN ULONG Base OPTIONAL
,
589 IN ULONG Length OPTIONAL
,
595 RtlIntegerToUnicodeString(
598 IN OUT PUNICODE_STRING String
611 RtlUshortByteSwap(IN USHORT Source
);
614 * Unicode->Ansi String Functions
618 RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString
);
622 RtlUnicodeStringToAnsiString(
623 PANSI_STRING DestinationString
,
624 PUNICODE_STRING SourceString
,
625 BOOLEAN AllocateDestinationString
629 * Unicode->OEM String Functions
633 RtlUpcaseUnicodeStringToOemString(
634 POEM_STRING DestinationString
,
635 PUNICODE_STRING SourceString
,
636 BOOLEAN AllocateDestinationString
641 RtlUpcaseUnicodeStringToCountedOemString(
642 IN OUT POEM_STRING DestinationString
,
643 IN PUNICODE_STRING SourceString
,
644 IN BOOLEAN AllocateDestinationString
649 RtlUpcaseUnicodeString(
650 PUNICODE_STRING DestinationString
,
651 PCUNICODE_STRING SourceString
,
652 BOOLEAN AllocateDestinationString
657 RtlUnicodeStringToOemString(
658 POEM_STRING DestinationString
,
659 PUNICODE_STRING SourceString
,
660 BOOLEAN AllocateDestinationString
665 RtlUpcaseUnicodeToOemN(
669 PWCHAR UnicodeString
,
675 RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString
);
683 PWCHAR UnicodeString
,
688 * Unicode->MultiByte String Functions
692 RtlUnicodeToMultiByteN(
696 PWCHAR UnicodeString
,
702 RtlUpcaseUnicodeToMultiByteN(
706 PWCHAR UnicodeString
,
712 RtlUnicodeToMultiByteSize(
714 PWCHAR UnicodeString
,
719 * OEM to Unicode Functions
723 RtlOemStringToUnicodeSize(POEM_STRING AnsiString
);
727 RtlOemStringToUnicodeString(
728 PUNICODE_STRING DestinationString
,
729 POEM_STRING SourceString
,
730 BOOLEAN AllocateDestinationString
737 ULONG MaxBytesInUnicodeString
,
738 PULONG BytesInUnicodeString
,
740 ULONG BytesInOemString
744 * Ansi->Multibyte String Functions
748 * Ansi->Unicode String Functions
752 RtlAnsiStringToUnicodeString(
753 PUNICODE_STRING DestinationString
,
754 PANSI_STRING SourceString
,
755 BOOLEAN AllocateDestinationString
760 RtlAnsiStringToUnicodeSize(
761 PANSI_STRING AnsiString
766 RtlCreateUnicodeStringFromAsciiz(
767 OUT PUNICODE_STRING Destination
,
772 * Unicode String Functions
776 RtlAppendUnicodeToString(
777 PUNICODE_STRING Destination
,
783 RtlAppendUnicodeStringToString(
784 PUNICODE_STRING Destination
,
785 PUNICODE_STRING Source
790 RtlCompareUnicodeString(
791 PUNICODE_STRING String1
,
792 PUNICODE_STRING String2
,
793 BOOLEAN CaseInsensitive
798 RtlCopyUnicodeString(
799 PUNICODE_STRING DestinationString
,
800 PUNICODE_STRING SourceString
805 RtlCreateUnicodeString(
806 PUNICODE_STRING DestinationString
,
812 RtlEqualUnicodeString(
813 PCUNICODE_STRING String1
,
814 PCUNICODE_STRING String2
,
815 BOOLEAN CaseInsensitive
820 RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString
);
824 RtlInitUnicodeString(
825 IN OUT PUNICODE_STRING DestinationString
,
826 IN PCWSTR SourceString
);
830 RtlPrefixUnicodeString(
831 PUNICODE_STRING String1
,
832 PUNICODE_STRING String2
,
833 BOOLEAN CaseInsensitive
838 RtlUnicodeStringToInteger(
839 PUNICODE_STRING String
,
845 * Ansi String Functions
849 RtlFreeAnsiString(IN PANSI_STRING AnsiString
);
854 PANSI_STRING DestinationString
,
859 * OEM String Functions
863 RtlFreeOemString(IN POEM_STRING OemString
);
866 * MultiByte->Unicode String Functions
870 RtlMultiByteToUnicodeN(
871 PWCHAR UnicodeString
,
874 const PCHAR MbString
,
880 RtlMultiByteToUnicodeSize(
891 RtlAddAtomToAtomTable(
892 IN PRTL_ATOM_TABLE AtomTable
,
901 IN OUT PRTL_ATOM_TABLE
*AtomTable
906 RtlDeleteAtomFromAtomTable(
907 IN PRTL_ATOM_TABLE AtomTable
,
913 RtlDestroyAtomTable(IN PRTL_ATOM_TABLE AtomTable
);
917 RtlQueryAtomInAtomTable(
918 IN PRTL_ATOM_TABLE AtomTable
,
920 IN OUT PULONG RefCount OPTIONAL
,
921 IN OUT PULONG PinCount OPTIONAL
,
922 IN OUT PWSTR AtomName OPTIONAL
,
923 IN OUT PULONG NameLength OPTIONAL
928 RtlLookupAtomInAtomTable(
929 IN PRTL_ATOM_TABLE AtomTable
,
940 IN
const VOID
*Source1
,
941 IN
const VOID
*Source2
,
948 IN PVOID Destination
,
954 * Process Management Functions
958 RtlAcquirePebLock(VOID
);
962 RtlReleasePebLock(VOID
);
967 IN HANDLE ProcessHandle
,
968 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
969 IN BOOLEAN CreateSuspended
,
970 IN LONG StackZeroBits
,
971 IN OUT PULONG StackReserve
,
972 IN OUT PULONG StackCommit
,
973 IN PTHREAD_START_ROUTINE StartAddress
,
975 IN OUT PHANDLE ThreadHandle
,
976 IN OUT PCLIENT_ID ClientId
979 PRTL_USER_PROCESS_PARAMETERS
981 RtlDeNormalizeProcessParams(
982 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
987 RtlExpandEnvironmentStrings_U(
989 PUNICODE_STRING Source
,
990 PUNICODE_STRING Destination
,
994 PRTL_USER_PROCESS_PARAMETERS
996 RtlNormalizeProcessParams(
997 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
1002 RtlQueryEnvironmentVariable_U(
1004 PUNICODE_STRING Name
,
1005 PUNICODE_STRING Value
1009 * Critical Section/Resource Functions
1013 RtlDeleteCriticalSection (
1014 PRTL_CRITICAL_SECTION CriticalSection
1019 RtlEnterCriticalSection(
1020 PRTL_CRITICAL_SECTION CriticalSection
1025 RtlInitializeCriticalSection(
1026 PRTL_CRITICAL_SECTION CriticalSection
1031 RtlLeaveCriticalSection(
1032 PRTL_CRITICAL_SECTION CriticalSection
1036 * Compression Functions
1041 IN USHORT CompressionFormatAndEngine
,
1042 IN PUCHAR UncompressedBuffer
,
1043 IN ULONG UncompressedBufferSize
,
1044 OUT PUCHAR CompressedBuffer
,
1045 IN ULONG CompressedBufferSize
,
1046 IN ULONG UncompressedChunkSize
,
1047 OUT PULONG FinalCompressedSize
,
1053 RtlDecompressBuffer(
1054 IN USHORT CompressionFormat
,
1055 OUT PUCHAR UncompressedBuffer
,
1056 IN ULONG UncompressedBufferSize
,
1057 IN PUCHAR CompressedBuffer
,
1058 IN ULONG CompressedBufferSize
,
1059 OUT PULONG FinalUncompressedSize
1064 RtlGetCompressionWorkSpaceSize(
1065 IN USHORT CompressionFormatAndEngine
,
1066 OUT PULONG CompressBufferWorkSpaceSize
,
1067 OUT PULONG CompressFragmentWorkSpaceSize
1076 IN PRTL_BITMAP BitMapHeader
,
1077 IN ULONG StartingIndex
,
1084 IN PRTL_BITMAP BitMapHeader
,
1085 IN ULONG StartingIndex
,
1092 IN PRTL_BITMAP BitMapHeader
,
1093 IN ULONG StartingIndex
,
1094 IN ULONG NumberToClear
1100 PRTL_BITMAP BitMapHeader
,
1107 RtlFindClearBitsAndSet(
1108 PRTL_BITMAP BitMapHeader
,
1115 RtlInitializeBitMap(
1116 IN PRTL_BITMAP BitMapHeader
,
1117 IN PULONG BitMapBuffer
,
1118 IN ULONG SizeOfBitMap
1124 PRTL_BITMAP BitMapHeader
,
1125 ULONG StartingIndex
,
1134 RtlImageDirectoryEntryToData(
1144 PIMAGE_NT_HEADERS NtHeader
,
1147 PIMAGE_SECTION_HEADER
*SectionHeader
1152 RtlImageNtHeader(IN PVOID BaseAddress
);
1154 PIMAGE_SECTION_HEADER
1156 RtlImageRvaToSection(
1157 PIMAGE_NT_HEADERS NtHeader
,
1163 * Registry Functions
1167 RtlFormatCurrentUserKeyPath(IN OUT PUNICODE_STRING KeyPath
);
1172 IN ACCESS_MASK DesiredAccess
,
1173 OUT PHANDLE KeyHandle
1178 RtlQueryRegistryValues(
1179 IN ULONG RelativeTo
,
1181 IN PRTL_QUERY_REGISTRY_TABLE QueryTable
,
1183 IN PVOID Environment
1188 RtlWriteRegistryValue(
1200 IN PVOID BaseAddress
,
1204 OUT PRTL_MESSAGE_RESOURCE_ENTRY
*MessageResourceEntry
1213 IN PUSHORT AnsiTableBase
,
1214 IN PUSHORT OemTableBase
,
1215 IN PUSHORT CaseTableBase
,
1216 OUT PNLSTABLEINFO NlsTable
1221 RtlInitCodePageTable(
1222 IN PUSHORT TableBase
,
1223 OUT PCPTABLEINFO CodePageTable
1228 RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable
);
1231 * Misc String Functions
1235 RtlIsNameLegalDOS8Dot3(
1236 IN PUNICODE_STRING UnicodeName
,
1237 IN PANSI_STRING AnsiName
,
1254 RtlQueryTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1258 RtlSecondsSince1970ToTime(
1259 IN ULONG SecondsSince1970
,
1260 OUT PLARGE_INTEGER Time
1265 RtlSetTimeZoneInformation(LPTIME_ZONE_INFORMATION TimeZoneInformation
);
1269 RtlTimeFieldsToTime(
1270 PTIME_FIELDS TimeFields
,
1276 RtlTimeToTimeFields(
1277 PLARGE_INTEGER Time
,
1278 PTIME_FIELDS TimeFields
1286 RtlVerifyVersionInfo(
1287 IN PRTL_OSVERSIONINFOEXW VersionInfo
,
1289 IN ULONGLONG ConditionMask
1294 RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation
);
1297 * C Runtime Library Functions
1299 char *_itoa (int value
, char *string
, int radix
);
1300 wchar_t *_itow (int value
, wchar_t *string
, int radix
);
1301 int _snprintf(char * buf
, size_t cnt
, const char *fmt
, ...);
1302 int _snwprintf(wchar_t *buf
, size_t cnt
, const wchar_t *fmt
, ...);
1303 int _stricmp(const char *s1
, const char *s2
);
1304 char * _strlwr(char *x
);
1305 int _strnicmp(const char *s1
, const char *s2
, size_t n
);
1306 char * _strnset(char* szToFill
, int szFill
, size_t sizeMaxFill
);
1307 char * _strrev(char *s
);
1308 char * _strset(char* szToFill
, int szFill
);
1309 char * _strupr(char *x
);
1310 int _vsnprintf(char *buf
, size_t cnt
, const char *fmt
, va_list args
);
1311 int _wcsicmp (const wchar_t* cs
, const wchar_t* ct
);
1312 wchar_t * _wcslwr (wchar_t *x
);
1313 int _wcsnicmp (const wchar_t * cs
,const wchar_t * ct
,size_t count
);
1314 wchar_t* _wcsnset (wchar_t* wsToFill
, wchar_t wcFill
, size_t sizeMaxFill
);
1315 wchar_t * _wcsrev(wchar_t *s
);
1316 wchar_t *_wcsupr(wchar_t *x
);
1317 int atoi(const char *str
);
1318 long atol(const char *str
);
1325 int isxdigit(int c
);
1326 size_t mbstowcs (wchar_t *wcstr
, const char *mbstr
, size_t count
);
1327 int mbtowc (wchar_t *wchar
, const char *mbchar
, size_t count
);
1328 void * memchr(const void *s
, int c
, size_t n
);
1329 void * memcpy(void *to
, const void *from
, size_t count
);
1330 void * memmove(void *dest
,const void *src
, size_t count
);
1331 void * memset(void *src
, int val
, size_t count
);
1333 int sprintf(char * buf
, const char *fmt
, ...);
1334 void srand(unsigned seed
);
1335 char * strcat(char *s
, const char *append
);
1336 char * strchr(const char *s
, int c
);
1337 int strcmp(const char *s1
, const char *s2
);
1338 char * strcpy(char *to
, const char *from
);
1339 size_t strlen(const char *str
);
1340 char * strncat(char *dst
, const char *src
, size_t n
);
1341 int strncmp(const char *s1
, const char *s2
, size_t n
);
1342 char *strncpy(char *dst
, const char *src
, size_t n
);
1343 char *strrchr(const char *s
, int c
);
1344 size_t strspn(const char *s1
, const char *s2
);
1345 char *strstr(const char *s
, const char *find
);
1346 int swprintf(wchar_t *buf
, const wchar_t *fmt
, ...);
1349 wchar_t towlower(wchar_t c
);
1350 wchar_t towupper(wchar_t c
);
1351 int vsprintf(char *buf
, const char *fmt
, va_list args
);
1352 wchar_t * wcscat(wchar_t *dest
, const wchar_t *src
);
1353 wchar_t * wcschr(const wchar_t *str
, wchar_t ch
);
1354 int wcscmp(const wchar_t *cs
, const wchar_t *ct
);
1355 wchar_t* wcscpy(wchar_t* str1
, const wchar_t* str2
);
1356 size_t wcscspn(const wchar_t *str
,const wchar_t *reject
);
1357 size_t wcslen(const wchar_t *s
);
1358 wchar_t * wcsncat(wchar_t *dest
, const wchar_t *src
, size_t count
);
1359 int wcsncmp(const wchar_t *cs
, const wchar_t *ct
, size_t count
);
1360 wchar_t * wcsncpy(wchar_t *dest
, const wchar_t *src
, size_t count
);
1361 wchar_t * wcsrchr(const wchar_t *str
, wchar_t ch
);
1362 size_t wcsspn(const wchar_t *str
,const wchar_t *accept
);
1363 wchar_t *wcsstr(const wchar_t *s
,const wchar_t *b
);
1364 size_t wcstombs (char *mbstr
, const wchar_t *wcstr
, size_t count
);
1365 int wctomb (char *mbchar
, wchar_t wchar
);