HalpWdatInitializeWdrt

NTSTATUS __stdcall HalpWdatInitializeWdrt(PFILE_OBJECT FileObject, PCC_FILE_SIZES FileSizes){
  _DEVICE_OBJECT *DeviceObject; 
  unsigned int v4; 
  NTSTATUS result; 
  __int64 *v6; 
  unsigned int v7; 

  DeviceObject = FileObject->DeviceObject;
  v4 = WORD2(DeviceObject->DeviceExtension);
  LODWORD(FileObject->Vpb) = v4;
  if( v4 >= 0x1FF )
    LODWORD(FileObject->Vpb) = v4;
  else
    LODWORD(FileObject->Vpb) = 512;
  HIDWORD(FileObject->Vpb) = 1;
  if( BYTE6(DeviceObject->DeviceExtension) )
  {
    if( BYTE6(DeviceObject->DeviceExtension) == 1 )
    {
      LODWORD(FileObject->FsContext) = 100;
    }
    else
    {
      if( BYTE6(DeviceObject->DeviceExtension) != 2 )
        return -1073741811;
      LODWORD(FileObject->FsContext) = 10;
    }
  }
  else
  {
    LODWORD(FileObject->FsContext) = 1000;
  }
  HIDWORD(FileObject->SectionObjectPointer) = 15;
  v6 = qword_140030868;
  v7 = 0;
  while( 1 )
  {
    result = WdInstrInitializeInstruction(
               (_WD_INSTRUCTION *)&FileObject->PrivateCacheMap + v7,
               *((_BYTE *)v6 - 8),
               *((_BYTE *)v6 - 7),
               (_GEN_ADDR *)((char *)DeviceObject + (*((_BYTE *)v6 - 6) != 0 ? 48i64 : 36i64)));
    if( result < 0 )
      break;
    ++v7;
    v6 = (__int64 *)((char *)v6 + 12);
    if( v7 >= 0xF )
      return 0;
  }
  return result;
}

Referenced by:

HalpWdatInitialize