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