WmipProbeWnodeSingleInstance

NTSTATUS __stdcall WmipProbeWnodeSingleInstance(
        tagWNODE_SINGLE_INSTANCE *Wnode,
        UINT64 InBufferLen,
        UINT64 OutBufferLen,
        UINT8 OutBound){
  int v4; 
  bool CheckInBound; 
  NTSTATUS result; 
  ULONG Flags; 
  UINT64 DataBlockSize; 
  UINT64 InBufferLena; 
  UINT64 OutBufferLena; 
  v4 = InBufferLen;
  if( (unsigned int)InBufferLen < 0x40 )
    return -1073741823;
  CheckInBound = OutBound == 0;
  if( OutBound )
  {
    if( (unsigned int)OutBufferLen < 0x40 )
      return -1073741823;
    CheckInBound = OutBound == 0;
  }
  LODWORD(OutBufferLena) = OutBufferLen;
  LODWORD(InBufferLena) = InBufferLen;
  LODWORD(DataBlockSize) = Wnode->SizeDataBlock;
  result = WmipProbeWnodeWorker(
             &Wnode->WnodeHeader,
             0x40ui64,
             Wnode->OffsetInstanceName,
             Wnode->DataBlockOffset,
             DataBlockSize,
             InBufferLena,
             OutBufferLena,
             OutBound,
             CheckInBound);
  if( result < 0 )
    return result;
  Flags = Wnode->WnodeHeader.Flags;
  if( (Flags & 2) == 0 || v4 != Wnode->WnodeHeader.BufferSize || (Flags & 0xFFFFFF7D) != 0 )
    return -1073741823;
  return 0;
}

Referenced by:

WmipIoControl