www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - module win32.winioctl :IOCTL_STORAGE_EJECT_MEDIA' Value is Error

reply "FrankLike" <1150015857 qq.com> writes:
Now,I use the win32.winioctl.d file,find 
:IOCTL_STORAGE_EJECT_MEDIA ' Value is 0x0202,if you use it ,will 
get the error value 50.(by GetLastError()).

It should be 0x2d4808.If you use it ,it works ok.

Why have this kind of mistake?

Frank
Dec 29 2014
parent reply dennis luehring <dl.soluz gmx.net> writes:
Am 29.12.2014 um 13:00 schrieb FrankLike:
 Now,I use the win32.winioctl.d file,find
 :IOCTL_STORAGE_EJECT_MEDIA ' Value is 0x0202,if you use it ,will
 get the error value 50.(by GetLastError()).

 It should be 0x2d4808.If you use it ,it works ok.

 Why have this kind of mistake?

 Frank
maybe just a bug but https://github.com/Diggsey/druntime-win32/blob/master/winioctl.d seems to be correctly defined IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS),
Dec 29 2014
next sibling parent "FrankLike" <1150015857 qq.com> writes:
On Monday, 29 December 2014 at 12:19:34 UTC, dennis luehring 
wrote:
 Am 29.12.2014 um 13:00 schrieb FrankLike:
 Now,I use the win32.winioctl.d file,find
 :IOCTL_STORAGE_EJECT_MEDIA ' Value is 0x0202,if you use it 
 ,will
 get the error value 50.(by GetLastError()).

 It should be 0x2d4808.If you use it ,it works ok.

 Why have this kind of mistake?

 Frank
maybe just a bug but https://github.com/Diggsey/druntime-win32/blob/master/winioctl.d seems to be correctly defined IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS),
You can test to remove a USB by it,use '0x2d4808' will be ok,but '0x0202' will be failed .
Dec 29 2014
prev sibling parent reply "FrankLike" <1150015857 qq.com> writes:
On Monday, 29 December 2014 at 12:19:34 UTC, dennis luehring 
wrote:
 Am 29.12.2014 um 13:00 schrieb FrankLike:
 Now,I use the win32.winioctl.d file,find
 :IOCTL_STORAGE_EJECT_MEDIA ' Value is 0x0202,if you use it 
 ,will
 get the error value 50.(by GetLastError()).

 It should be 0x2d4808.If you use it ,it works ok.

 Why have this kind of mistake?

 Frank
maybe just a bug but https://github.com/Diggsey/druntime-win32/blob/master/winioctl.d seems to be correctly defined IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS),
Sorry,I've known what's wrong with it. Should do similar to C++: import win32.winioctl; Don't similar to c#: public uint IOCTL_STORAGE_EJECT_MEDIA = 0x2d4808;
Dec 29 2014
parent dennis luehring <dl.soluz gmx.net> writes:
Am 30.12.2014 um 04:03 schrieb FrankLike:
 On Monday, 29 December 2014 at 12:19:34 UTC, dennis luehring
 wrote:
 Am 29.12.2014 um 13:00 schrieb FrankLike:
 Now,I use the win32.winioctl.d file,find
 :IOCTL_STORAGE_EJECT_MEDIA ' Value is 0x0202,if you use it
 ,will
 get the error value 50.(by GetLastError()).

 It should be 0x2d4808.If you use it ,it works ok.

 Why have this kind of mistake?

 Frank
maybe just a bug but https://github.com/Diggsey/druntime-win32/blob/master/winioctl.d seems to be correctly defined IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE_T!(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS),
Sorry,I've known what's wrong with it. Should do similar to C++: import win32.winioctl; Don't similar to c#: public uint IOCTL_STORAGE_EJECT_MEDIA = 0x2d4808;
so it was your fault not using the IOCTL_STORAGE_EJECT_MEDIA as defined in the import???? where do you get the 0x0202 value from???? your questions, problems AND solutions are always very hard to understand
Dec 30 2014