The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
I have a PC equipped with 128GB of RAM. For a high-speed, high-bandwidth application transferring constantly tons of gigabytes over a self-developed PCIe card we've implemented a driver allocating 8GB in total of kernel space memory with MmAllocatePagesForMdlEx and friends. This memory is mapped to the user space for read/write access eventually.
The actual implementation of the DMA transfer to/from PCIe card is done with the help of a two level scatter/gather table as just having one level wouldn't fit in FPGAs block ram. This works so far quite good.
But I thought wouldn't it be possible to allocate much more continual physical memory than the usual 4kB page size. Say something in 256MB chunks or even 1GB (hope its not too naive). This would give us the chance to get rid of resource hungry two level scatter/gather table implementation on the FPGA. I've found using MmAllocateContiguousMemory for this purpose.
What do you think? Would it be a good idea?
|Upcoming OSR Seminars|
|OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!|
|Internals & Software Drivers||7 February 2022||Live, Online|
|Kernel Debugging||21 March 2022||Live, Online|
|Developing Minifilters||23 May 2022||Live, Online|
|Writing WDF Drivers||12 September 2022||Live, Online|