-
Never return a nonzero value from your HAM_Execute_HACB routine.
-
Understand that by default NWPA will disable interrupts in
your driver during critical I/O paths (in particular, during the entire
context of your HAM_Execute_HACB routine.) This will help ensure critical
paths, such as queuing, are not interrupted, causing possible data
corruption. The drawback is that disabling interrupts for this entire
duration may significantly impact performance of your driver, especially if
your driver spends considerable time in that thread. To bypass disabling of
interrupts by NWPA during that thread, set the Interrupt_Safe_Execute bit
(0x00000008) in the flags field of the HAMInfoStruct structure.
Setting this bit, however, places the responsibility of disabling interrupts
for critical paths on your driver.
-
If your driver ever performs Real Mode interrupts or needs to switch to Real
Mode for any reason, be sure to set the NPAOptionStruct structure field
option->parameter1 |= 0x02 to adjust the Real Mode interrupt
mask when you add the interrupt option for that particular
interrupt.
|