From: Alexander Grigoriev on
Bad idea. You cannot share the same filesystem image safely. It will get
corrupted very fast.

"ND" <ND(a)discussions.microsoft.com> wrote in message
news:1AFDEA00-7E8C-4CB6-A9C2-0C33B3A2F5EE(a)microsoft.com...
>
> Hi Maxim Shantskih,
>
> Thanks for your reply.
>
> We are creating virtual disk within a file and mounts it as a real disk.
>
> Normaly only one user can mount that file as disk, and use it. But now we
> want multiple user can mount this file in network, as real disk in there
> own PC, and use it.Like NFS.
>
> We did this by giving FILE_SHARE_WRITE access to file ,while file creation
> using ZwCreateFile.
> With this multiple user(multiple pcs) can mount this file as virtual
> disk.And when user updates this virtual volume,the disk file is updated.
> Now problem is ,when mutiple users trying to update from different pcs I
> could not maintain offset of the diskfile.So the data lost.
>
> I could know user operation through IRP_MJ_XXX.But how i can share this
> file
> among driver instances.
>
>
> we planned to lock this file for synchronization.or is there any other way
> to achieve this.
>
> Waiting for your reply.
> Thanks
>
> "Maxim S. Shatskih" wrote:
>
>> > How many IRPs will be sent for file copy operation.
>>
>> Nobody knows for sure, this depends, for instance, on what way was used
>> for
>> file copying.
>>
>> > How i can trace start and end of copy operation.
>>
>> You cannot. Reading the source and writing the destination are 2
>> absolutely
>> unrelated processes to the kernel, the kernel does not know this is a
>> copy.
>>
>> --
>> Maxim Shatskih, Windows DDK MVP
>> StorageCraft Corporation
>> maxim(a)storagecraft.com
>> http://www.storagecraft.com
>>
>>


From: Maxim S. Shatskih on
> We did this by giving FILE_SHARE_WRITE access to file ,while file creation
> using ZwCreateFile.
> With this multiple user(multiple pcs) can mount this file as virtual
> disk.And when user updates this virtual volume,the disk file is updated.

No need in this. The disk device is global for all users, and is only
initialized once in Windows. This is also true for your virtual disk, there
will be no per-user initialization of it.

If you really want to have the disk device (file-disk or any other) updatable
simultaneously from several network nodes each running its own filesystem, then
sorry, you need a cluster filesystem for this, NTFS cannot do this.

So, such a product would shift from block-device-sharing paradigm, with FSD
running on each client node, to file-sharing paradigm, with FSD running near to
the device.

Block-device-sharing technologies like iSCSI really do suffer a lot from
inability of simultaneously mounting the same LUN on different nodes with
non-clustered commodity FS like NTFS.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim(a)storagecraft.com
http://www.storagecraft.com