#ifndef _NTSTRSAFE_H_INCLUDED_
#ifndef NTSTRSAFE_LIB_IMPL
#ifndef NTSTRSAFE_NO_UNICODE_STRING_FUNCTIONS
NTSTRSAFEDDI
RtlStringCbCopyUnicodeString(
_Out_writes_bytes_(cbDest) NTSTRSAFE_PWSTR pszDest,
_In_ size_t cbDest,
_In_ PCUNICODE_STRING SourceString)
{
NTSTATUS status;
size_t cchDest = cbDest / sizeof(wchar_t);
status = RtlStringValidateDestW(pszDest,
cchDest,
NTSTRSAFE_UNICODE_STRING_MAX_CCH);
if (NT_SUCCESS(status))
{
wchar_t* pszSrc;
size_t cchSrcLength;
status = RtlUnicodeStringValidateSrcWorker(SourceString,
&pszSrc,
&cchSrcLength,
NTSTRSAFE_UNICODE_STRING_MAX_CCH,
0);
if (NT_SUCCESS(status))
{
status = RtlStringCopyWideCharArrayWorker(pszDest,
cchDest,
NULL,
pszSrc,
cchSrcLength);
}
else
{
*pszDest = L'\0';
}
}
return status;
}
View code on GitHub
No description available.