Discussion:
Is it possible to map PCIe large BAR size (memory BAR >128MB) upon Windows7 x64 system?
(too old to reply)
j***@ces-swap.com
2016-02-04 13:54:37 UTC
Permalink
Hello,

I'm writing a Windows 7 device driver for a "communication PCIe device".
This PCIe device has a BAR containing a large memory space (bigger then 128MB).

The device driver uses the Windows kernel call MmMapLockedPagesSpecifyCache() to map the PCIe device BAR memory address into the user-application (virtual) memory space.

Up to a BAR size of 128MB the MmMapLockedPagesSpecifyCache() function works.
For bigger memory space the MmMapLockedPagesSpecifyCache() function throw a exception, avoiding using large size BAR.

So, Is it possible to map PCIe BAR size bigger than 128MB upon Windows7 x64 system? And if yes how to ?

Cordially.
j***@ces-swap.com
2016-02-10 07:31:14 UTC
Permalink
I found what was going on. I recompiled everything on x64 mode then the mapping of 1GB BAR into the user virtual memory space works.
Post by j***@ces-swap.com
Hello,
I'm writing a Windows 7 device driver for a "communication PCIe device".
This PCIe device has a BAR containing a large memory space (bigger then 128MB).
The device driver uses the Windows kernel call MmMapLockedPagesSpecifyCache() to map the PCIe device BAR memory address into the user-application (virtual) memory space.
Up to a BAR size of 128MB the MmMapLockedPagesSpecifyCache() function works.
For bigger memory space the MmMapLockedPagesSpecifyCache() function throw a exception, avoiding using large size BAR.
So, Is it possible to map PCIe BAR size bigger than 128MB upon Windows7 x64 system? And if yes how to ?
Cordially.
Loading...