IopMountInitializeVpb

_VPB *__stdcall IopMountInitializeVpb(
        _DEVICE_OBJECT *DeviceObject,
        _DEVICE_OBJECT *AttachedDevice,
        UINT64 RawMountOnly,
        UINT8 MountedAsRaw){
  int v6; 
  UINT8 v8; 
  _VPB *Vpb; 
  UINT8 v10; 
  __int16 v11; 

  v6 = RawMountOnly;
  v8 = KeAcquireQueuedSpinLock(9i64, (INT64)AttachedDevice, RawMountOnly);
  Vpb = DeviceObject->Vpb;
  v10 = v8;
  v11 = 1;
  Vpb->Flags = 1;
  if( v6 )
  {
    v11 = 17;
    Vpb->Flags = 17;
  }
  if( MountedAsRaw )
    Vpb->Flags = v11 | 0x20;
  Vpb->DeviceObject->StackSize = AttachedDevice->StackSize + 1;
  Vpb->DeviceObject->DeviceObjectExtension->Vpb = Vpb;
  IopIncrementVpbRefCount(Vpb, 0);
  KeReleaseQueuedSpinLock(LockQueueIoVpbLock, v10);
  return Vpb;
}

Referenced by:

IopMountVolume