Hi Martin,
“Read Requests and Non-Posted Write Requests require Completion.[…]”, from PCIe Section 2.2.9. »Completion Rules«. In fact, all non-posted requests require completion, and they are given, for example, in the »Ordering Rules Summary Table«, Cols 3 & 4: Read Requests, I/O (Read and Write), Configuration Requests (Read and Write) or Trusted Configuration Write Requests.
Maybe you can cut down the PC driver+app thing as well? How about writing a driver that just writes some amount of bytes to the device’s configuration register space over and over (e.g. timer-based)? You could write a bottom-half function that does one write cycle and re-schedules itself immediately.