IopMountInitializeVpb

_VPB *__stdcall IopMountInitializeVpb(
        _DEVICE_OBJECT *DeviceObject,
        _DEVICE_OBJECT *AttachedDevice,
        UINT64 RawMountOnly,
        UINT8 MountedAsRaw){
  int v6; 
  UINT8 v8; 
  _VPB *v9; 
  KIRQL v10; 
  __int16 v11; 
  v6 = RawMountOnly;
  v8 = KeAcquireQueuedSpinLock(9ui64);
  v9 = (_VPB *)*((_QWORD *)DeviceObject + 7);
  v10 = v8;
  v11 = 1;
  v9->Flags = 1;
  if( v6 )
  {
    v11 = 17;
    v9->Flags = 17;
  }
  if( MountedAsRaw )
    v9->Flags = v11 | 0x20;
  *((_BYTE *)v9->DeviceObject + 76) = *((_BYTE *)AttachedDevice + 76) + 1;
  *(_QWORD *)(*((_QWORD *)v9->DeviceObject + 39) + 72i64) = v9;
  IopIncrementVpbRefCount(v9, 0);
  KeReleaseQueuedSpinLock(9ui64, v10);
  return v9;
}

Referenced by:

IopMountVolume