Hi.
I am new to writing Windows drivers (I betcha have heard that before) however I have several years of Linux out-of-tree driver development for proprietary PCI express based hardware.
We are looking to develop a driver for Windows 10 64 bit so we can avoid GPL issues.
So I installed Visual Studio Community 2017.
WDK for Windows 10, version 1809.
Anyhow before I get to PCIe I simply want to get a Hello World driver operational so I have been following the steps on this.
However after trying to deploy the driver I get this error.
Deploying driver files for project “C:\Drivers\HelloWorld\KmdfHelloWorld\KmdfHelloWorld\KmdfHelloWorld.vcxproj”. Deployment may take a few minutes…
[15:12:46:162]: Remove Existing Remote Package
[15:12:46:180]: Task “Remove Existing Remote Package” completed successfully
[15:12:46:192]: Copy Driver Package
[15:12:46:229]: Task “Copy Driver Package” was aborted because an error occured on the target machine during execution.An error occurred on the target machine while copying a file from the host machine.
Error code: 2
Error message: Unable to create directory: C:\DriverTest\DriversNew.
[15:12:46:239]: Driver Removal
[15:12:46:239]: Removing any existing files from test execution folder.
[15:12:46:260]: Copying required files for “Driver Removal”.
[15:12:46:310]: An error occured while deploying files to the target machine for test “Driver Removal”: An error occurred on the target machine while copying a file from the host machine.
Error code: 2
Error message: Unable to create directory: C:\DriverTest\Run…
From this link
I do this
Deployment fails due to Error code: 2
Add the following registry key:
HKLM\Software\Microsoft\DriverTest\Service
Under this key, create a DWORD value DebugSession, and set it to 0.
And I still get the same error.
I looked here.
https://www.osr.com/getting-started-writing-windows-drivers/
And it suggests that debugging on a remote machine from a host is the way to go.
While other “old schoolers” suggest installing the driver on the test machine and just updating the binary.
I made the mistake of thinking I would easily be able to do the latter.
So my questions are:
- Why can’t the host machine create directories on the target? Is there something I can do to alleviate this?
- Is there an in depth tutorial on reverting to the “old school” method?
I am rather suck ATM.