Get The HDD Disk Drive Information From The DeviceIOControl?
Mar 3, 2010
I am trying to get the HDD Disk Drive information from the DeviceIOControl function with IOCTL_DISK_GET_DRIVE_LAYOUT_EX control code.
Here are the problems :1. The DeviceIOControl function returns(as from output buffer) DRIVE_LAYOUT_INFORMATION_EX structure. Which contains some data types i am unable to get.
I am trying to get the HDD Disk Drive information from the DeviceIOControl(,,,,,) function with IOCTL_DISK_GET_DRIVE_LAYOUT_EX control code.
Here are the problems :
1. The DeviceIOControl function returns(as from output buffer) DRIVE_LAYOUT_INFORMATION_EX structure. Which contains some data types i am unable to get. I used. Uint32 instead of Dword. Long instead of Large_Integer.
2. DRIVE_LAYOUT_INFORMATION_EX structure contains a union declaration as mentioned on MSDN , HOW TO GET A UNION in VB.NET or vb 6.
3. Still when i tried declaring the data types as mentioned earlier gives an error (Value does not fall within the expected range.) executing the DeviceIOControl Method.
I want my program to find the disk drive. I just do not know how to find it programmically? Can anyone help, please? This should be pretty easy, right?
i'm trying to list out the what to pick when using the perfmon counter, physical disk. when you look at it in perfmon, it shows for example, 0 C:, 1 D:. I see how to get the drive letters avaliable on the sytem.. how in vb.net to get the disk id. i want to get a listing of all the hard drives on the system, both their ID and the drive letter.
If there is no floppy disk in the drive, i need the user to be informed, because when it comes to the loop
For Each File As String In My.Computer.FileSystem.GetFiles(Src, FileIO.SearchOption.SearchAllSubDirectories, "*") My.Computer.FileSystem.CopyFile(File, String.Concat(Dst, Microsoft.VisualBasic.Right(File,
Iam trying to copy file to floppy disk rather than to hard drive. I try to use the code that I used in VB6 but there are so many errors. I gave up. Are any simple code the would do it? New C# Programmer
I am new to VB and playing with a program to display disk info attached to my PC. I have used WIN32_DiskDrive & WIN32_LogicalDisk to gather info regarding volumes, disks and partitions.
What I want to find how is how to relate the Device Index and Partition # back to a volume (ie with a drive letter).
I have a program that must copy a file to 3 locations, the local hard disk, a USB drive, and a network location. I have the file (about 70mb) loaded into a byte array. My quesion is, since I'm not actively modifying the byte array, can I impliment a form of multithreading where all 3 threads read the same byte array at the same time?
I have several other API calls working fine, and I've built a Disk_Get_Drive_Layout call with several supporting Structures (really, a lot) If the actual code ends up being really necessary, I'd rather post it then than spam my question with all of it. The bit I know I don't fully understand is in the DRIVE_LAYOUT_INFORMATION_EX Structure (and also the PARTITION_INFORMATION_EX Structure) where a C++ union() is called for - I built a separate structure to provide that functionality, but it does the exact same thing as everything else. The union() in C++ sets up a class with multiple members, where only 1 of those members is understood to exist at a time.
Past that, there's also an uninitialized array in one of the structures and I'm not sure exactly how to handle that - my assumption would be that the API initializes and populates it, and when I try to initialize it myself with an explicit original boundary it always throws a system error at runtime (there's no exception with the uninitialized array, but it never returns any data either and both err.GetLastDLLError and the API GetLastError function always return code 122 defined as 'Error_Insufficient_Buffer')
I'm trying to read the table of contents from a CD and am having problems with the DeviceIOControl function. When I call it with a control code of IOCTL_CDROM_EJECT_MEDIA or IOCTL_CDROM_LOAD_MEDIA it works fine, and opens or closes the CD drawer. But when I call it with a code of IOCTL_CDROM_READ_TOC_EX it gives an error code of 6 (ERROR_INVALID_HANDLE). I'm using the same handle, so I can't see why it's complaining. It's possible that the input data that I'm giving it is wrong, but I don't think that it should give this particular error in that case. [Code]
I'm running the following WMI script to get the associations between drive letters and physical drives on the system, but for some reason it omits CDROMs/DVD-ROMs. Can someone tell me how to get those as well?
Code: ComputerName = "." Set wmiServices = GetObject _ ("winmgmts:{impersonationLevel=Impersonate}!//" & ComputerName) Set wmiDiskDrives = wmiServices.ExecQuery _ ("SELECT DeviceID FROM Win32_DiskDrive")
I have a program that allows the user to enter a drive letter into a text box. The program then takes the letter and find the physical drive number (i.e. deviceharddisk3..). It then stripes out everything and leaves me with the number 3.
In VB6 I used mDrive.bas from vbAccelerator.com and it worked perfectly. I have been all over the internet and back and cannot find a solution written in VB.NET.
I want to make a tool that will assign a USB pen drive a drive letter, I am using WMI to acknowledge the device being plugged in, I can pull the deviceID, name, etc now I just need to work out how to assign the device to a drive and I just cant figure it out
The drive is connected via USB and the problem I'm having is that, periodically, while my code is executing, the usb drive seems to disconnect and reconnect. (Nothing to do with the program, but the drive itself).I want to find a way to prevent these temporary drive reconnects from interrupting my code. IE, i want to insure that whatever read or write that is requested is actually executed even in the case of a temporary drive interruption.
I am trying to get the physical drive (device) number from the drive letter. If the user inputs the drive letter C the program will find the associated physical device number. For example if I input C then the result needs to be \Device\HardDrive1\... Some call it NT Device Name; I think. I have the code for VB6 from vbAccelerator, which works perfectly, but it does not work in VB.NET. My question is there a simple way of pulling the drive info that contains the drive letter and the physical device number. I have searched the internet and found nothing for VB.NET. I would post code but I have nothing for .NET.
I have a program I am converting from VB6 to VB.NET and I am stuck at the very last piece of code. I need to determine what physical device number is associated with the drive letter.
The program takes the drive letter from a text box and goes and finds the device number (i.e. deviceharddrive3...) and strips out everything leaving me with the devicer number; in this case the number 3. I have searched the internet to and fro and found nothing in VB.NET.
My program in VB6 uses a .bas module from vbaccelerator.com called mDrive.bas and works great. I can't figure out how to convert it over to VB.NET.
First off a short background of the project I am working on- I am developing a program that will be run off removable media (i.e. USB Flash drive). This will be a �virtual desktop� which you will be able to take with you and have the same �desktop� on any system. As we know drive letters can change with each host system the drive is plugged into, I need to be able to determine the path for the flash drive and access a specific folder ( i.e. My Documents)
I have an picture box(representing the icon) placed on my form (form1) and when I click the icon I want to be able to open and view the a specific folder from the portable drive. I need a click event that will determine a dynamic drive letter for a directory on the removable drive and then open that directory in an explorer window.
I am using the following code to get a list of the letters for each drive on my computer. I want to get the drive letter of CD Drive from this list. The code I am using to get list is as below:
Is it possible to check if a Logical device gathered through a WMI search request is a CD/DVD Drive? Right now, I can get the path of every Win32_LogicalDisk through WMI, but E: (for me) is my DVD drive and unless there is a disc, my program fails because it tries to count the number of folders/files on the disc.
Ultimately, I'd like to be able to tell if it is a CD/DVD drive then check to see if there is a disc there before I do anything else to it. Can it be done using WMI?
I have a function that copies files from a CD to my HDD:CopyFiles(CD_Drive, FullPath & "")
The problem is that the Drive letter "I:" is not consistent. Sometimes when I connect and disconnect external devices, the CD Drive letter changes and then my code doesn't work unless I open the project, change the letter "I" and recompile.What code can I use that will ALWAYS detect my CD Drive, regardless of the drive letter? (Like for instance, NERO will detect and burn CDs regardless of the drive letter)
how to open an .exe file from a that is in a certain file, what i am trying to do is create a program that will be portable-via jump drive or cd drive, the reason i feel stupid is that I did not realize that visual basic and vb.net are two different animals- I was trying to use app.path for days- then came across a post that set me straight that I can not use it.[code]
I have created a form that I would like to run from a jump drive, or cd drive, were the drive letter will never be the same-
Application.StartupPath is the answer I have come up with- Implementing it is difficult for me- all the examples I have seen retrieves the path and imports it to a textbox. What I got is a form will start a .exe of a portable program- ( that will be located on the jump drive, or cd)
I have created a form that will -when a button is pressed- execute an .exe to a program that will also be on the jump drive. how to do this from start to finish on how to run an .exe from a file that will not ever be located on the same drive-
I should add I'am using visual studios 2010, visual basic.net
What is wrong with this code...... it should remove all folders and files on the "J" drive i am using win7 and would like to just format the drive
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load My.Computer.FileSystem.DeleteDirectory("J:", FileIO.DeleteDirectoryOption.DeleteAllContents, FileIO.RecycleOption.DeletePermanently, FileIO.UICancelOption.DoNothing) End Sub End Class
The program is currently trying to pull information from three different database tables and compiling the information onto one screen, to do this i am using three different connections and a function to handle the data at each stage. The issue is as my code hits PageLoadStage of "2" and runs the QueryDatabase() Function i am encountering an error of: "OleDB exception unhandled: No value given for one or more of the required parameters." This occurs on line 15 of the first code snippet. Can anyone explain this and/or identify any code issues if that is the cause.