Making windows to wait for my data

16 views
Skip to first unread message

Roberto

unread,
Dec 30, 2009, 11:07:02 AM12/30/09
to Dokan
Hello!

I'm developing a kind of virtual filesystem and I'm using dokan.

My FS is mapped to a remote storage, therefore, when the user try to
open a file, the file itself doesn't exists. I have to bring it back
from the network.

This process could last for a while, so instead of blocking the read
method, I would like to return something like "WAIT_FOR_DATA" or,
"ASK_ME_LATER".

Currently, as far as I know, read method can return 3 states: (through
return value and *ReadLength parameter)
* negative value -> there has been an error.
* greater than 0 -> the size that you have been read
* 0 -> this is the end of the file.

In my situation, actually I have 0 bytes, but I don't want to return 0
because this marks the end of the file, and the client program ( say
VLC ) would stop making request for data and close the file.

I cannot return any value greater than 0, because I dont have that
data.

So, there is any way ( maybe a error return ) that could say windows
that "I don't have the data, but keep asking me" without blocking the
read thread?

Thanks in advance.

Hiroki Asakawa

unread,
Dec 31, 2009, 8:41:51 AM12/31/09
to do...@googlegroups.com
Hi,

Each callback function must return a value within 15 seconds.
Currently there is no way to extend the timeout. I'm thinking about
adding that feature.
Can you get a data within 15 seconds?

You can extend the timeout by editing following variables, but you need to build
the driver by yourself.
\sys\dokan.h
#define DOKAN_NOTIFICATION_TIMEOUT 15 // in seconds
#define DOKAN_IPR_PENDING_TIMEOUT 15 // in seconds

Thanks,

> --
>
> You received this message because you are subscribed to the Google Groups "Dokan" group.
> To post to this group, send email to do...@googlegroups.com.
> To unsubscribe from this group, send email to dokan+un...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/dokan?hl=en.
>
>
>

Roberto

unread,
Jan 2, 2010, 7:26:11 PM1/2/10
to Dokan
Thank you for your answer!

In some situations I need more than that 15 seconds, much more indeed.

I'll give a try extending that time modifiying the #define, but I
think that it would be more appropiate to return a value in those 15
seconds, but with the return value indicate windows that the request
should be asked again.

I read something about cancelling IRP requests but I'm not sure if it
would be useful in this cases.

> > For more options, visit this group athttp://groups.google.com/group/dokan?hl=en.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Reply all
Reply to author
Forward
0 new messages