Hello there,
I am new to driver development and have been diving into the process of creating drivers for PCIe devices on Windows. I have been going through the OSR Driver Development Kit DDK and reading up on WDF Windows Driver Framework; but I still find myself a bit unclear on a few things.
When working with a PCIe device, is there a recommended approach for mapping the device memory to the user space efficiently? I have come across both MmMapIoSpace and MmMapLockedPagesSpecifyCache, but I am unsure which is better suited for performance critical applications.
My PCIe device supports MSI-X interrupts. What is the best way to configure and handle these interrupts in a KMDF Kernel Mode Driver Framework environment? Are there any common pitfalls I should watch out for during implementation?
I have been using WinDbg for troubleshooting; but debugging kernel drivers seems more challenging than user mode applications. Are there any particular best practices or tools beyond WinDbg that you would recommend for tracking down bugs in drivers?
Finally; if there are any beginner friendly resources or documentation that you think would complement the OSR materials.
Thank you in advance for your help and assistance.