网络驱动程序中的可移植性

应编写 NDIS 驱动程序,以便在支持 Microsoft Windows 操作系统的所有平台上轻松移植它们。 通常,从一个硬件平台移植到另一个硬件平台只需使用系统兼容的编译器重新编译。

编写 NDIS 驱动程序时,请遵循以下准则:

  • 避免调用特定于操作系统的函数。 请改用 NDIS 等效函数。 NDIS 导出一组用于编写驱动程序的丰富支持函数,如果你调用这些支持函数,则可以在支持 NDIS 的 Microsoft 操作系统之间移植代码。

  • 使用 C (编写驱动程序,具体来说,是 ANSI C 标准) 。 避免使用其他系统兼容编译器不支持的任何语言功能。 请勿使用 ANSI C 标准指定为“已定义的实现”的任何功能。

  • 避免依赖于大小和布局因平台而异的数据类型。 例如,不要编写调用任何 C Run-Time 库函数而不是 NDIS 提供的函数的驱动程序代码。

  • 请勿在内核模式下使用浮点运算。 如果尝试此类操作,将发生致命错误。

  • 使用 #ifdef#endif 语句封装用于支持特定于平台的功能的代码。