http://www.perlmonks.org?node_id=1018706

davies has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to write something to check for falsely reported sizes on USB & similar drives. Opening them in Linux is trivial, even for someone who knows as little about Linux as I do. Thanks to Mr. Muskrat's post (Win32) Hard Drive Information and AnthonyC's thread Windows drive letter mapping question(++ to all), I have got a lot of useful code. Hard coding as much as possible, I was hoping that the snippet below would work. Sadly, I get a "Permission denied" error. I am logged in as administrator, so I was not expecting permissions to be a problem. Googling has got me nowhere. Can anyone point me to any helpful docs?

use strict; use warnings; open my $fh, "<", '\\\\MYCOMPUTER\\root\\cimv2:Win32_LogicalDisk.Devic +eID="G:"' or die $!;

Regards,

John Davies

Replies are listed 'Best First'.
Re: Opening a block device in Windows
by Corion (Patriarch) on Feb 14, 2013 at 09:50 UTC

    If you really want direct access to the raw device, like /dev/sdx under unixish/linuxish systems, you can open \\.\F: (permissions provided), potentially using CreateFile() via Win32::API. Also see this MSDN article on direct drive access, espcecially if you don't have a drive letter yet.