WDM 下边缘的实施提示和要求
本主题介绍实现 NDIS-WDM 微型端口驱动程序的提示和要求。 NDIS-WDM 微型端口驱动程序可以调用 NDIS 和非 NDIS 函数。 例如,这些非 NDIS 函数包括 WDM 内核模式支持特定总线驱动程序接口的例程和函数。
实现 NDIS-WDM 微型端口驱动程序时,请记住以下事项:
生成 NDIS-WDM 微型端口驱动程序需要在包含 Ndis.h 头文件之前定义 NDIS_WDM 标志。 定义 NDIS_WDM 标志可确保 Ndis.h 自动包含相应的 WDM 头文件。 NDIS_WDM 标志应嵌入在微型端口驱动程序源代码的开头,或在微型端口驱动程序的 Sources 文件中设置。 NDIS-WDM 微型端口驱动程序需要 WDM 头文件来调用内核模式例程,例如 IoCallDriver 和 IoAllocateIrp。
特定总线驱动程序接口的函数调用需要该总线驱动程序的头文件。
不建议在同一源文件中包含 NDIS 和非 NDIS 标头,因为它们可能不兼容。 也就是说,应为调用 NDIS 函数的代码和调用非 NDIS 函数的代码创建单独的源文件。
NDIS-WDM 微型端口驱动程序应调用相应的 NDIS 函数来分配和释放资源,除非 NDIS-WDM 微型端口驱动程序在以下方案中分配和释放资源:
- 资源(通常是内存资源)由 NDIS-WDM 微型端口驱动程序分配,稍后由非 NDIS 实体(如总线驱动程序接口)发布。
- 资源(通常是内存资源)由非 NDIS 实体分配,稍后由 NDIS-WDM 微型端口驱动程序发布。
对于上述方案,NDIS-WDM 微型端口驱动程序应调用相应的 WDM 例程来为非 NDIS 实体分配或释放资源。