My WD_Transfer() memory transfer routines are too slow. Can I speed them up?
You can replace the calls to WD_Transfer() with direct memory access, by utilizing the virtual user mode mapping of the base physical address for the relevant memory range, which is returned by WD_CardRegister() in: cardReg.Card.Item[i].I.Mem.dwUserDirectAddress (where ‘i’ is the index number of the memory base address in the WD_ITEMS ‘Item’ array). This is documented in the WinDriver User’s Manual (see the description of WD_CardRegister() in the “Function Reference” chapter and the “Improving Performance” chapter) and in Technical Documents #74 and #17. Technical document #17 also includes other suggestions on how you might improve your driver’s performance with WinDriver.