[Win32utils-devel] DeviceIoControl + IOCTL_DISK_GET_DRIVE_GEOMETRY problem
Daniel Berger
djberg96 at gmail.com
Tue May 6 21:45:53 EDT 2008
On Tue, May 6, 2008 at 7:38 PM, Heesob Park <phasis at gmail.com> wrote:
> Hi,
>
> 2008/5/7 Berger, Daniel <Daniel.Berger at qwest.com>:
>
>
> > Hi all,
> >
> > Ok, what am I doing wrong here?
> >
> > require 'windows/device_io'
> > require 'windows/handle'
> > require 'windows/error'
> > include Windows::DeviceIO
> > include Windows::Handle
> > include Windows::Error
> >
> > fh = File.open('test.txt') # Assume you have this
> >
> > handle = get_osfhandle(fh.fileno)
> >
> > if handle == INVALID_HANDLE_VALUE
> > puts "get_osfhandle failed"
> > fh.close
> > exit
> > end
> >
> > buf = 0.chr * 24 # sizeof(DISK_GEOMETRY)
> > bytes = [0].pack('L')
> >
> > bool = DeviceIoControl(
> > handle,
> > IOCTL_DISK_GET_DRIVE_GEOMETRY(), # 458752
> > nil,
> > 0,
> > buf,
> > buf.size,
> > bytes,
> > 0
> > )
> >
> > # Fails here
> > unless bool
> > puts "DeviceIoControl failed: " + get_last_error
> > fh.close
> > exit
> > End
> >
> > fh.close
> >
> > Thanks,
> >
> > Dan
> >
> > PS - I've added several IOCTL macro methods to Windows::DeviceIO in CVS
> > (part of windows-pr).
> >
> >
> What do you want to do?
> DeviceIoControl works not with file handle but with device handle.
<snip>
Hm, is there any way to go from file handle to device handle?
Thanks,
Dan
More information about the win32utils-devel
mailing list