Mounted readonly vhdx problems

If i mount vhdx as readonly and without assigning drive letters WinApi and IOCLS calls in many cases fails with NOT_READY Win32 Error (for example GetVolumeInformation ) and Incorrect Function[0x00000000] (for exmaple for IoctlDiskGetDriveGeometryEx)… if i mount it not readonly and wit drive letter - all works like with real disc drive, but that is not appropriate. Why does that calls fails for readonly vhdx without drive letter?