ViZwCheckUnicodeString
VOID __stdcall ViZwCheckUnicodeString(_UNICODE_STRING *String, VOID *Caller){
wchar_t *Buffer;
__int64 Length;
unsigned __int16 MaximumLength;
UINT64 v7;
if( String )
{
ViZwCheckVirtualAddress((UINT64)String, Caller);
Buffer = String->Buffer;
ViZwCheckVirtualAddress((UINT64)Buffer, Caller);
Length = String->Length;
if( (MmVerifierData & 0x100) != 0 )
{
if( (wchar_t *)((char *)Buffer + Length) < Buffer
|| (MaximumLength = String->MaximumLength, MaximumLength < (unsigned __int16)Length)
|| (((unsigned __int16)Length | MaximumLength) & 1) != 0 )
{
VerifierBugCheckIfAppropriate(0xC4ui64, 0xE4u, (ULONG_PTR)Caller, (ULONG_PTR)String, 0, v7);
}
}
}
}Referenced by:
VfZwAccessCheckAndAuditAlarm
VfZwAlpcConnectPort
VfZwCloseObjectAuditAlarm
VfZwConnectPort
VfZwCreateKey
VfZwCreateSymbolicLinkObject
VfZwCreateTransaction
VfZwCreateTransactionManager
VfZwDeleteValueKey
VfZwDisplayString
VfZwLoadDriver
VfZwOpenTransactionManager
VfZwQueryDirectoryFile
VfZwQueryLicenseValue
VfZwQuerySymbolicLinkObject
VfZwQueryValueKey
VfZwSetValueKey
VfZwUnloadDriver
ViZwCheckObjectAttributes