First I'll start by answering the obligatory "what are you really trying to do here?" question
I just want to send IOCTLs to a driver from a UWP app. This has led me to the CustomDevice.FromIdAsync() method to open a driver. This open is based on a device interface GUID path, i.e. it won't work with a symbolic link/control device type of driver. The core problem is, my device does not have a hardware component and is a simple nonpnp driver. The kmdf framework prevents device interfaces from being registered on these devices. To make sure I wasn't doing something stupid I took the ioctl WDK sample and simply added a call to WdfDeviceCreateDeviceInterface, but it fails with STATUS_INVALID_DEVICE_REQUEST. The ioctl sample exposes a symlink name that the user app opens, and that's great with win32, but seems to be a complete dead end with a UWP/store app.
So is there any way to do this? The only thing I can imagine is writing a bus driver to enumerate my hardware-less device, simply so that it fits into the pnp mold and thus can have a device interface exposed. But that seems like a huge amount of effort just to be able to send an ioctl.
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Writing WDF Drivers||21 Oct 2019||OSR Seminar Space & ONLINE|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|
|Kernel Debugging||30 Mar 2020||OSR Seminar Space|
|Developing Minifilters||27 Apr 2020||OSR Seminar Space & ONLINE|