Search code examples
windowskernelsetupapidevice-manager

Getting the Physical Device Object name of a disk device


I need to retrieve the "Physical Device Object name" of a disk device from a user mode application on Windows, as seen in Device Manager.

I have a solution now that involves a kernel driver that gets loaded and interrogated through IOCTLs. Once in kernel land, I have no trouble getting to that name. If possible, I would like to avoid using a kernel module.

Any ideas?


Solution

  • You can get this using the Setup API functions. Specifically I believe you can get this via SetupDiGetDeviceRegistryProperty and SPDRP_PHYSICAL_DEVICE_OBJECT_NAME.