> developer > cross-platform, network, & collaboration > drivers > storage > certified
Tips for Storage Driver Development
introduction
The following tips are offered to those developing storage drivers with the hope of making the task of developing drivers easier, but are not meant to be comprehensive in any way. If you have a question for us about storage driver development, please feel free to contact us.
storage driver tips
  1. Never return a nonzero value from your HAM_Execute_HACB routine.

  2. 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.

  3. 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.