Hi!
I am planning a project called virtual disk, which should be able to map
data in databases distributed on remote machines as drive or directory. That
means:
1. Data in remote databases are formed and represented in files and folders
paradigm. User and other programs (such as microsoft notepad, word, excel)
can access (open/save) the data of the database through the drive (maybe
"z:") or directory (maybe "c:\program files\my project\"). Also access
through command prompt should be supported.
2. Any changes of files and directories in the mapped dirve/directory will
cause corresponding ones on the database, and updates of the database will
alse be reflected in the mapped drive/directory vice versa.
3. Different users can map different data in the database to different
drive/directory on their OSs. Users should login the server to get the rights
of accessing the data in the database before they mapped the data to their
systems.
I got confused when I wrote the client code. How to map the database as a
drive? Which solutions should I choose? Should I write a filesystem driver or
a shell namespace extension? At first I wrote a NSE, but it seemed that the
microsoft office's open/save dialog didn't accept the path of the file in my
NSE, while the notepad did. Someone suggested me to use SAMBA by exporting
the data of the database as directories and files. Should I take it?
Somebody help me, please.

Re: filesystem driver, NSE, SAMBA or others? by Vladimir

Vladimir
Sat Sep 01 06:06:47 PDT 2007

The similar project exists. For details see CallbackFS from eldos.com

--
Best regards,
Vladimir Zinin
mailto:vzinin@gmail.com


chanpin wrote:
> Hi!
> I am planning a project called virtual disk, which should be able to map
> data in databases distributed on remote machines as drive or directory. That
> means:
> 1. Data in remote databases are formed and represented in files and folders
> paradigm. User and other programs (such as microsoft notepad, word, excel)
> can access (open/save) the data of the database through the drive (maybe
> "z:") or directory (maybe "c:\program files\my project\"). Also access
> through command prompt should be supported.
> 2. Any changes of files and directories in the mapped dirve/directory will
> cause corresponding ones on the database, and updates of the database will
> alse be reflected in the mapped drive/directory vice versa.
> 3. Different users can map different data in the database to different
> drive/directory on their OSs. Users should login the server to get the rights
> of accessing the data in the database before they mapped the data to their
> systems.
> I got confused when I wrote the client code. How to map the database as a
> drive? Which solutions should I choose? Should I write a filesystem driver or
> a shell namespace extension? At first I wrote a NSE, but it seemed that the
> microsoft office's open/save dialog didn't accept the path of the file in my
> NSE, while the notepad did. Someone suggested me to use SAMBA by exporting
> the data of the database as directories and files. Should I take it?
> Somebody help me, please.

Re: filesystem driver, NSE, SAMBA or others? by chanpin

chanpin
Sun Sep 02 20:58:07 PDT 2007

Thanks for your advice. But Callback File System seems to be a commercial
library which I should pay for using it. And I would like to learn something
about the low level details but the CallbackFS doesn't describe them.
--
chenbinjy@163.com


"Vladimir Zinin" wrote:

> The similar project exists. For details see CallbackFS from eldos.com
>
> --
> Best regards,
> Vladimir Zinin
> mailto:vzinin@gmail.com
>
>
> chanpin wrote:
> > Hi!
> > I am planning a project called virtual disk, which should be able to map
> > data in databases distributed on remote machines as drive or directory. That
> > means:
> > 1. Data in remote databases are formed and represented in files and folders
> > paradigm. User and other programs (such as microsoft notepad, word, excel)
> > can access (open/save) the data of the database through the drive (maybe
> > "z:") or directory (maybe "c:\program files\my project\"). Also access
> > through command prompt should be supported.
> > 2. Any changes of files and directories in the mapped dirve/directory will
> > cause corresponding ones on the database, and updates of the database will
> > alse be reflected in the mapped drive/directory vice versa.
> > 3. Different users can map different data in the database to different
> > drive/directory on their OSs. Users should login the server to get the rights
> > of accessing the data in the database before they mapped the data to their
> > systems.
> > I got confused when I wrote the client code. How to map the database as a
> > drive? Which solutions should I choose? Should I write a filesystem driver or
> > a shell namespace extension? At first I wrote a NSE, but it seemed that the
> > microsoft office's open/save dialog didn't accept the path of the file in my
> > NSE, while the notepad did. Someone suggested me to use SAMBA by exporting
> > the data of the database as directories and files. Should I take it?
> > Somebody help me, please.
>

RE: filesystem driver, NSE, SAMBA or others? by MarufManiruzzaman

MarufManiruzzaman
Mon Sep 03 01:34:00 PDT 2007

You need a filesystem driver- right? You have to use WDM. Can not use WDF.
Its a big project. Possibly you'll prefer to use a user mode application to
communicate with database server. The app then supplies data to the driver.
You should have methods like Open, Read, Write, ScanDirectory, Get/SetFleInfo
etc in use mode app and access them from driver- use the inverted call
approach- See

http://www.osronline.com/article.cfm?id=94

Good luck.

--
Sincerely,
Maruf Maniruzzaman,
Software Engineer,
KAZ Software Limited,
Dhaka, Bangladesh.
http://kaz.com.bd
http://kuashaonline.com

This posting is provided "AS IS", and confers no rights.



"chanpin" wrote:

> Hi!
> I am planning a project called virtual disk, which should be able to map
> data in databases distributed on remote machines as drive or directory. That
> means:
> 1. Data in remote databases are formed and represented in files and folders
> paradigm. User and other programs (such as microsoft notepad, word, excel)
> can access (open/save) the data of the database through the drive (maybe
> "z:") or directory (maybe "c:\program files\my project\"). Also access
> through command prompt should be supported.
> 2. Any changes of files and directories in the mapped dirve/directory will
> cause corresponding ones on the database, and updates of the database will
> alse be reflected in the mapped drive/directory vice versa.
> 3. Different users can map different data in the database to different
> drive/directory on their OSs. Users should login the server to get the rights
> of accessing the data in the database before they mapped the data to their
> systems.
> I got confused when I wrote the client code. How to map the database as a
> drive? Which solutions should I choose? Should I write a filesystem driver or
> a shell namespace extension? At first I wrote a NSE, but it seemed that the
> microsoft office's open/save dialog didn't accept the path of the file in my
> NSE, while the notepad did. Someone suggested me to use SAMBA by exporting
> the data of the database as directories and files. Should I take it?
> Somebody help me, please.

Re: filesystem driver, NSE, SAMBA or others? by Don

Don
Mon Sep 03 05:12:19 PDT 2007


"Maruf Maniruzzaman" <MarufManiruzzaman@discussions.microsoft.com> wrote in
message news:50678924-7219-4654-B976-1B6FFE065FE4@microsoft.com...
> You need a filesystem driver- right? You have to use WDM. Can not use
> WDF.
> Its a big project. Possibly you'll prefer to use a user mode application
> to
> communicate with database server. The app then supplies data to the
> driver.
> You should have methods like Open, Read, Write, ScanDirectory,
> Get/SetFleInfo
> etc in use mode app and access them from driver- use the inverted call
> approach- See
>
> http://www.osronline.com/article.cfm?id=94
>

Sorry, but go to http://www.osronline.com and ask these questions on NTFSD.
DO NOT FOLLOW THE ABOVE ADVICE, the NTFSD discussion group has been having
a discussion of why you do not send Read and Write to user mode. The rest
of the list above are user calls, and not what you see in the kernel.


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply



Re: filesystem driver, NSE, SAMBA or others? by David

David
Mon Sep 03 10:00:34 PDT 2007

Bad advise. WDM means including "wdm.h". You do not include that file, but
"ntifs.h" for both file system drivers and file system filter drivers. WDM
is a subset of the NT driver model that allows Windows 98 compatibility.
Including "ntddk.h" permits access to the full NT driver model excluding
file systems and specialized miniports.

Some may mean WDM to be PnP and power management capable driver, but I say
that is incorrect. With the WDK, you can include any of the three headers
and not have conflicts, but that was not true in earlier DDKs. Depending
upon which header you include, some things will be omitted.

--
David J. Craig
Engineer, Sr. Staff Software Systems
Broadcom Corporation


"Maruf Maniruzzaman" <MarufManiruzzaman@discussions.microsoft.com> wrote in
message news:50678924-7219-4654-B976-1B6FFE065FE4@microsoft.com...
> You need a filesystem driver- right? You have to use WDM. Can not use WDF.
> Its a big project. Possibly you'll prefer to use a user mode application
> to
> communicate with database server. The app then supplies data to the
> driver.
> You should have methods like Open, Read, Write, ScanDirectory,
> Get/SetFleInfo
> etc in use mode app and access them from driver- use the inverted call
> approach- See
>
> http://www.osronline.com/article.cfm?id=94
>
> Good luck.
>
> --
> Sincerely,
> Maruf Maniruzzaman,
> Software Engineer,
> KAZ Software Limited,
> Dhaka, Bangladesh.
> http://kaz.com.bd
> http://kuashaonline.com
>
> This posting is provided "AS IS", and confers no rights.
>
>
>
> "chanpin" wrote:
>
>> Hi!
>> I am planning a project called virtual disk, which should be able to map
>> data in databases distributed on remote machines as drive or directory.
>> That
>> means:
>> 1. Data in remote databases are formed and represented in files and
>> folders
>> paradigm. User and other programs (such as microsoft notepad, word,
>> excel)
>> can access (open/save) the data of the database through the drive (maybe
>> "z:") or directory (maybe "c:\program files\my project\"). Also access
>> through command prompt should be supported.
>> 2. Any changes of files and directories in the mapped dirve/directory
>> will
>> cause corresponding ones on the database, and updates of the database
>> will
>> alse be reflected in the mapped drive/directory vice versa.
>> 3. Different users can map different data in the database to different
>> drive/directory on their OSs. Users should login the server to get the
>> rights
>> of accessing the data in the database before they mapped the data to
>> their
>> systems.
>> I got confused when I wrote the client code. How to map the database as
>> a
>> drive? Which solutions should I choose? Should I write a filesystem
>> driver or
>> a shell namespace extension? At first I wrote a NSE, but it seemed that
>> the
>> microsoft office's open/save dialog didn't accept the path of the file in
>> my
>> NSE, while the notepad did. Someone suggested me to use SAMBA by
>> exporting
>> the data of the database as directories and files. Should I take it?
>> Somebody help me, please.



Re: filesystem driver, NSE, SAMBA or others? by chanpin

chanpin
Mon Sep 03 18:12:01 PDT 2007

Thanks for your help. I am afraid I have no idea which one I should choose to
solve my problem among these solutions: filesystem driver, NSE, SAMBA or
others. Please give me some advice for choosing.
--
chenbinjy@163.com


"Don Burn" wrote:

>
> "Maruf Maniruzzaman" <MarufManiruzzaman@discussions.microsoft.com> wrote in
> message news:50678924-7219-4654-B976-1B6FFE065FE4@microsoft.com...
> > You need a filesystem driver- right? You have to use WDM. Can not use
> > WDF.
> > Its a big project. Possibly you'll prefer to use a user mode application
> > to
> > communicate with database server. The app then supplies data to the
> > driver.
> > You should have methods like Open, Read, Write, ScanDirectory,
> > Get/SetFleInfo
> > etc in use mode app and access them from driver- use the inverted call
> > approach- See
> >
> > http://www.osronline.com/article.cfm?id=94
> >
>
> Sorry, but go to http://www.osronline.com and ask these questions on NTFSD.
> DO NOT FOLLOW THE ABOVE ADVICE, the NTFSD discussion group has been having
> a discussion of why you do not send Read and Write to user mode. The rest
> of the list above are user calls, and not what you see in the kernel.
>
>
> --
> Don Burn (MVP, Windows DDK)
> Windows 2k/XP/2k3 Filesystem and Driver Consulting
> Website: http://www.windrvr.com
> Blog: http://msmvps.com/blogs/WinDrvr
> Remove StopSpam to reply
>
>
>

Re: filesystem driver, NSE, SAMBA or others? by David

David
Mon Sep 03 18:25:01 PDT 2007

Can't you understand the post by Don Burn? NTFSD. No answers here.


--
David J. Craig
Engineer, Sr. Staff Software Systems
Broadcom Corporation


"chanpin" <chanpin@discussions.microsoft.com> wrote in message
news:E642FE50-C7F2-4C0B-B2F7-5703766873AA@microsoft.com...
> Thanks for your help. I am afraid I have no idea which one I should choose
> to
> solve my problem among these solutions: filesystem driver, NSE, SAMBA or
> others. Please give me some advice for choosing.
> --
> chenbinjy@163.com
>
>
> "Don Burn" wrote:
>
>>
>> "Maruf Maniruzzaman" <MarufManiruzzaman@discussions.microsoft.com> wrote
>> in
>> message news:50678924-7219-4654-B976-1B6FFE065FE4@microsoft.com...
>> > You need a filesystem driver- right? You have to use WDM. Can not use
>> > WDF.
>> > Its a big project. Possibly you'll prefer to use a user mode
>> > application
>> > to
>> > communicate with database server. The app then supplies data to the
>> > driver.
>> > You should have methods like Open, Read, Write, ScanDirectory,
>> > Get/SetFleInfo
>> > etc in use mode app and access them from driver- use the inverted call
>> > approach- See
>> >
>> > http://www.osronline.com/article.cfm?id=94
>> >
>>
>> Sorry, but go to http://www.osronline.com and ask these questions on
>> NTFSD.
>> DO NOT FOLLOW THE ABOVE ADVICE, the NTFSD discussion group has been
>> having
>> a discussion of why you do not send Read and Write to user mode. The
>> rest
>> of the list above are user calls, and not what you see in the kernel.
>>
>>
>> --
>> Don Burn (MVP, Windows DDK)
>> Windows 2k/XP/2k3 Filesystem and Driver Consulting
>> Website: http://www.windrvr.com
>> Blog: http://msmvps.com/blogs/WinDrvr
>> Remove StopSpam to reply
>>
>>
>>



Re: filesystem driver, NSE, SAMBA or others? by MarufManiruzzaman

MarufManiruzzaman
Tue Sep 04 02:38:02 PDT 2007

Its hard to deal with database in kernel mode. OP wants to use database. I am
not sure if its possible to work with database connection libs can be used
kernel mode.

I saw some successfull commercial product that uses user mode component for
filesystem part. The deadlock problem is handled there using carefull design.
Anyway, I have very little experience about drivers.

--
Sincerely,
Maruf Maniruzzaman,
Software Engineer,
KAZ Software Limited,
Dhaka, Bangladesh.
http://kaz.com.bd
http://kuashaonline.com

This posting is provided "AS IS", and confers no rights.



"Don Burn" wrote:

>
> "Maruf Maniruzzaman" <MarufManiruzzaman@discussions.microsoft.com> wrote in
> message news:50678924-7219-4654-B976-1B6FFE065FE4@microsoft.com...
> > You need a filesystem driver- right? You have to use WDM. Can not use
> > WDF.
> > Its a big project. Possibly you'll prefer to use a user mode application
> > to
> > communicate with database server. The app then supplies data to the
> > driver.
> > You should have methods like Open, Read, Write, ScanDirectory,
> > Get/SetFleInfo
> > etc in use mode app and access them from driver- use the inverted call
> > approach- See
> >
> > http://www.osronline.com/article.cfm?id=94
> >
>
> Sorry, but go to http://www.osronline.com and ask these questions on NTFSD.
> DO NOT FOLLOW THE ABOVE ADVICE, the NTFSD discussion group has been having
> a discussion of why you do not send Read and Write to user mode. The rest
> of the list above are user calls, and not what you see in the kernel.
>
>
> --
> Don Burn (MVP, Windows DDK)
> Windows 2k/XP/2k3 Filesystem and Driver Consulting
> Website: http://www.windrvr.com
> Blog: http://msmvps.com/blogs/WinDrvr
> Remove StopSpam to reply
>
>
>

Re: filesystem driver, NSE, SAMBA or others? by MarufManiruzzaman

MarufManiruzzaman
Tue Sep 04 02:40:01 PDT 2007

OK, I agree, he needs ntifs.h. I wanted to mean WDF does not work here.

--
Sincerely,
Maruf Maniruzzaman,
Software Engineer,
KAZ Software Limited,
Dhaka, Bangladesh.
http://kaz.com.bd
http://kuashaonline.com

This posting is provided "AS IS", and confers no rights.



"David J. Craig" wrote:

> Bad advise. WDM means including "wdm.h". You do not include that file, but
> "ntifs.h" for both file system drivers and file system filter drivers. WDM
> is a subset of the NT driver model that allows Windows 98 compatibility.
> Including "ntddk.h" permits access to the full NT driver model excluding
> file systems and specialized miniports.
>
> Some may mean WDM to be PnP and power management capable driver, but I say
> that is incorrect. With the WDK, you can include any of the three headers
> and not have conflicts, but that was not true in earlier DDKs. Depending
> upon which header you include, some things will be omitted.
>
> --
> David J. Craig
> Engineer, Sr. Staff Software Systems
> Broadcom Corporation
>
>
> "Maruf Maniruzzaman" <MarufManiruzzaman@discussions.microsoft.com> wrote in
> message news:50678924-7219-4654-B976-1B6FFE065FE4@microsoft.com...
> > You need a filesystem driver- right? You have to use WDM. Can not use WDF.
> > Its a big project. Possibly you'll prefer to use a user mode application
> > to
> > communicate with database server. The app then supplies data to the
> > driver.
> > You should have methods like Open, Read, Write, ScanDirectory,
> > Get/SetFleInfo
> > etc in use mode app and access them from driver- use the inverted call
> > approach- See
> >
> > http://www.osronline.com/article.cfm?id=94
> >
> > Good luck.
> >
> > --
> > Sincerely,
> > Maruf Maniruzzaman,
> > Software Engineer,
> > KAZ Software Limited,
> > Dhaka, Bangladesh.
> > http://kaz.com.bd
> > http://kuashaonline.com
> >
> > This posting is provided "AS IS", and confers no rights.
> >
> >
> >
> > "chanpin" wrote:
> >
> >> Hi!
> >> I am planning a project called virtual disk, which should be able to map
> >> data in databases distributed on remote machines as drive or directory.
> >> That
> >> means:
> >> 1. Data in remote databases are formed and represented in files and
> >> folders
> >> paradigm. User and other programs (such as microsoft notepad, word,
> >> excel)
> >> can access (open/save) the data of the database through the drive (maybe
> >> "z:") or directory (maybe "c:\program files\my project\"). Also access
> >> through command prompt should be supported.
> >> 2. Any changes of files and directories in the mapped dirve/directory
> >> will
> >> cause corresponding ones on the database, and updates of the database
> >> will
> >> alse be reflected in the mapped drive/directory vice versa.
> >> 3. Different users can map different data in the database to different
> >> drive/directory on their OSs. Users should login the server to get the
> >> rights
> >> of accessing the data in the database before they mapped the data to
> >> their
> >> systems.
> >> I got confused when I wrote the client code. How to map the database as
> >> a
> >> drive? Which solutions should I choose? Should I write a filesystem
> >> driver or
> >> a shell namespace extension? At first I wrote a NSE, but it seemed that
> >> the
> >> microsoft office's open/save dialog didn't accept the path of the file in
> >> my
> >> NSE, while the notepad did. Someone suggested me to use SAMBA by
> >> exporting
> >> the data of the database as directories and files. Should I take it?
> >> Somebody help me, please.
>
>
>