The scenario:

1) Two different CDs with different \autorun.inf on them. In other words,
the file names are the same, the content differ.
2) Two PCs in a LAN, the server and client
3) The CD drive on the server is shared; it's just a normal share with
default settings.
4) Insert CD1 on the server.
5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
6) Eject CD1, insert CD2.
7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails with
Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old content
from CD1. I can open all other files just fine, but not the files with the
same name which were opened previously. Say, if I have \setup.exe on both
CD1 and CD2, but I didn't open setup.exe at step 5, I can access CD2's
setup.exe on step 7.

How can flush the RDR cache on the client programmatically, instead of
having to reboot the server or recreate the share every time? Thanks.


A.

RE: RDR bug? by pavel_a

pavel_a
Tue May 16 16:49:01 CDT 2006

When you read the CDs locally, not over network,
this problem does not occur, correct?
--PA


"Andrew" wrote:
> The scenario:
>
> 1) Two different CDs with different \autorun.inf on them. In other words,
> the file names are the same, the content differ.
> 2) Two PCs in a LAN, the server and client
> 3) The CD drive on the server is shared; it's just a normal share with
> default settings.
> 4) Insert CD1 on the server.
> 5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
> 6) Eject CD1, insert CD2.
> 7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails with
> Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old content
> from CD1. I can open all other files just fine, but not the files with the
> same name which were opened previously. Say, if I have \setup.exe on both
> CD1 and CD2, but I didn't open setup.exe at step 5, I can access CD2's
> setup.exe on step 7.
>
> How can flush the RDR cache on the client programmatically, instead of
> having to reboot the server or recreate the share every time? Thanks.
>
>
> A.
>
>
>
>
>
>

Re: RDR bug? by Andrew

Andrew
Tue May 16 17:01:17 CDT 2006

Yet another description of the problem:
http://groups.google.co.nz/group/microsoft.public.win32.programmer.networks/browse_frm/thread/72772cb385ab5324/0ad1cc57948dbf34?lnk=st&q=(redirector+OR+rdr)+(error_wrong_disk)&rnum=1&hl=en#0ad1cc57948dbf34

I have a working solution with a driver on the server that filters CDFS and
denies any oplocks. I need to update the driver, and I hope there's an
easier solution to the problem so that I could remove the FS filter. I hope
Microsoft guys having access to the source code can tell me how I can force
RDR to forget about a file on an ejected CD.


--

"Andrew" <anonymous@discussions.microsoft.com> wrote in message
news:eTcob2SeGHA.3484@TK2MSFTNGP04.phx.gbl...
> The scenario:
>
> 1) Two different CDs with different \autorun.inf on them. In other words,
> the file names are the same, the content differ.
> 2) Two PCs in a LAN, the server and client
> 3) The CD drive on the server is shared; it's just a normal share with
> default settings.
> 4) Insert CD1 on the server.
> 5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
> 6) Eject CD1, insert CD2.
> 7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails
> with Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old
> content from CD1. I can open all other files just fine, but not the files
> with the same name which were opened previously. Say, if I have \setup.exe
> on both CD1 and CD2, but I didn't open setup.exe at step 5, I can access
> CD2's setup.exe on step 7.
>
> How can flush the RDR cache on the client programmatically, instead of
> having to reboot the server or recreate the share every time? Thanks.
>
>
> A.
>
>
>
>
>



Re: RDR bug? by Andrew

Andrew
Tue May 16 17:04:36 CDT 2006

Correct.

--

"Pavel A." <pavel_a@NOwritemeNO.com> wrote in message
news:DF378F08-C042-42F0-BB7F-2510C1720554@microsoft.com...
> When you read the CDs locally, not over network,
> this problem does not occur, correct?
> --PA
>
>
> "Andrew" wrote:
>> The scenario:
>>
>> 1) Two different CDs with different \autorun.inf on them. In other words,
>> the file names are the same, the content differ.
>> 2) Two PCs in a LAN, the server and client
>> 3) The CD drive on the server is shared; it's just a normal share with
>> default settings.
>> 4) Insert CD1 on the server.
>> 5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
>> 6) Eject CD1, insert CD2.
>> 7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails
>> with
>> Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old content
>> from CD1. I can open all other files just fine, but not the files with
>> the
>> same name which were opened previously. Say, if I have \setup.exe on both
>> CD1 and CD2, but I didn't open setup.exe at step 5, I can access CD2's
>> setup.exe on step 7.
>>
>> How can flush the RDR cache on the client programmatically, instead of
>> having to reboot the server or recreate the share every time? Thanks.
>>
>>
>> A.
>>
>>
>>
>>
>>
>>



Re: RDR bug? by Maxim

Maxim
Tue May 16 23:44:56 CDT 2006

Can you repro this on a local CD drive without SMB sharing?

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

"Andrew" <anonymous@discussions.microsoft.com> wrote in message
news:eTcob2SeGHA.3484@TK2MSFTNGP04.phx.gbl...
> The scenario:
>
> 1) Two different CDs with different \autorun.inf on them. In other words,
> the file names are the same, the content differ.
> 2) Two PCs in a LAN, the server and client
> 3) The CD drive on the server is shared; it's just a normal share with
> default settings.
> 4) Insert CD1 on the server.
> 5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
> 6) Eject CD1, insert CD2.
> 7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails with
> Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old content
> from CD1. I can open all other files just fine, but not the files with the
> same name which were opened previously. Say, if I have \setup.exe on both
> CD1 and CD2, but I didn't open setup.exe at step 5, I can access CD2's
> setup.exe on step 7.
>
> How can flush the RDR cache on the client programmatically, instead of
> having to reboot the server or recreate the share every time? Thanks.
>
>
> A.
>
>
>
>
>


Re: RDR bug? by Maxim

Maxim
Tue May 16 23:49:46 CDT 2006

Wow... so, this was due to batch oplock... yes, looks like this is an SMB
or CDFS bug in Windows, the batch oplocks must be torn on removable media
changes.

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

"Andrew" <anonymous@discussions.microsoft.com> wrote in message
news:%231QTLQTeGHA.3572@TK2MSFTNGP03.phx.gbl...
> Yet another description of the problem:
>
http://groups.google.co.nz/group/microsoft.public.win32.programmer.networks/browse_frm/thread/72772cb385ab5324/0ad1cc57948dbf34?lnk=st&q=(redirector+OR+rdr)+(error_wrong_disk)&rnum=1&hl=en#0ad1cc57948dbf34
>
> I have a working solution with a driver on the server that filters CDFS and
> denies any oplocks. I need to update the driver, and I hope there's an
> easier solution to the problem so that I could remove the FS filter. I hope
> Microsoft guys having access to the source code can tell me how I can force
> RDR to forget about a file on an ejected CD.
>
>
> --
>
> "Andrew" <anonymous@discussions.microsoft.com> wrote in message
> news:eTcob2SeGHA.3484@TK2MSFTNGP04.phx.gbl...
> > The scenario:
> >
> > 1) Two different CDs with different \autorun.inf on them. In other words,
> > the file names are the same, the content differ.
> > 2) Two PCs in a LAN, the server and client
> > 3) The CD drive on the server is shared; it's just a normal share with
> > default settings.
> > 4) Insert CD1 on the server.
> > 5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
> > 6) Eject CD1, insert CD2.
> > 7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails
> > with Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old
> > content from CD1. I can open all other files just fine, but not the files
> > with the same name which were opened previously. Say, if I have \setup.exe
> > on both CD1 and CD2, but I didn't open setup.exe at step 5, I can access
> > CD2's setup.exe on step 7.
> >
> > How can flush the RDR cache on the client programmatically, instead of
> > having to reboot the server or recreate the share every time? Thanks.
> >
> >
> > A.
> >
> >
> >
> >
> >
>
>


Re: RDR bug? by Andrew

Andrew
Wed May 17 15:20:13 CDT 2006

It works fine on a local drive, and fails over a network on Win2003SP1.

--

"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:ub04cyWeGHA.2076@TK2MSFTNGP04.phx.gbl...
> Can you repro this on a local CD drive without SMB sharing?
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> maxim@storagecraft.com
> http://www.storagecraft.com
>
> "Andrew" <anonymous@discussions.microsoft.com> wrote in message
> news:eTcob2SeGHA.3484@TK2MSFTNGP04.phx.gbl...
>> The scenario:
>>
>> 1) Two different CDs with different \autorun.inf on them. In other words,
>> the file names are the same, the content differ.
>> 2) Two PCs in a LAN, the server and client
>> 3) The CD drive on the server is shared; it's just a normal share with
>> default settings.
>> 4) Insert CD1 on the server.
>> 5) Open and read \\Share\CD\autorun.inf on the client. All is OK.
>> 6) Eject CD1, insert CD2.
>> 7) Open and read \\Share\CD\autorun.inf. Now either CreateFile() fails
>> with
>> Win32 error 34 (ERROR_WRONG _DISK), or ReadFile() returns the old content
>> from CD1. I can open all other files just fine, but not the files with
>> the
>> same name which were opened previously. Say, if I have \setup.exe on both
>> CD1 and CD2, but I didn't open setup.exe at step 5, I can access CD2's
>> setup.exe on step 7.
>>
>> How can flush the RDR cache on the client programmatically, instead of
>> having to reboot the server or recreate the share every time? Thanks.
>>
>>
>> A.
>>
>>
>>
>>
>>
>