Windows Administration
Jump to navigation
Jump to search
Device Management
View and Delete Unused Devices
Open a cmd.exe console:
> set devmgr_show_nonpresent_devices=1
> devmgmt.msc
In the Device Management Console, select show hidden devices. Unused devices are grayed out.
Convert Logical Drive Letter to PhysicalDrive
The following C program illustrates what Win32 API to use to convert a logical drive letter like C: to the corresponding PhysicalDrive specification.
#include <stdio.h>
#include <w32api/wtypes.h>
#include <w32api/ddk/ntdddisk.h>
int main()
{
HANDLE hDeviceHandle = NULL;
char drive[] = {'\\', '\\', '.', '\\', 'A', ':', 0};
DWORD driveMask = GetLogicalDrives();
for(int i = 0; i < 26; i++)
{
drive[4] = 'A' + i;
printf("Drive: %s\n", drive);
hDeviceHandle = CreateFile(drive , 0, 0, NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);
if (hDeviceHandle != (HANDLE)-1)
{
STORAGE_DEVICE_NUMBER sdn;
DWORD returned;
if (DeviceIoControl(
hDeviceHandle,IOCTL_STORAGE_GET_DEVICE_NUMBER,NULL ,0,&sdn,sizeof(sdn),&returned,NULL));
{
printf("\tDevice type: %d number: %d partition: %d\n",sdn.DeviceType,
sdn.DeviceNumber, sdn.PartitionNumber);
if(sdn.DeviceType == 7)
printf("\t-->\t\\\\.\\PhysicalDrive%d\n",sdn.DeviceNumber);
}
}
}
return 0;
}
Compile with:
% gcc logicalToPhysicalDrive.cpp
Example of output:
Drive: \\.\C:
Device type: 7 number: 0 partition: 1
--> \\.\PhysicalDrive0