
1. 工作项NDIS 函数NdisAllocateIoWorkItemWDF 等效WdfWorkItemCreate说明分配/创建工作项对象。NDIS 中需传入适配器句柄返回句柄WDF 中创建后需注册 EvtWorkItem 回调并用 WdfWorkItemEnqueue 入队。2. 计时器NDIS 函数NdisAllocateTimerObjectWDF 等效WdfTimerCreate说明分配/创建计时器对象。NDIS 用 NdisSetTimerObject 启动WDF 用 WdfTimerStart 启动可设置单次或周期触发。3. 自旋锁NDIS 函数NdisAcquireSpinLockWDF 等效WdfSpinLockAcquire说明获取自旋锁保护共享资源。NDIS 需配对 NdisReleaseSpinLockWDF 需配对 WdfSpinLockRelease且锁需先通过 WdfSpinLockCreate 创建。4. 原子递增NDIS 函数NdisInterlockedIncrementWDF 等效InterlockedIncrement说明原子方式递增变量。NDIS 仅对同类调用原子不能用于可分页内存WDF 推荐使用 InterlockedIncrement效率更高可用于可分页数据。5. 事件对象NDIS 函数NdisInitializeEventWDF 等效KeInitializeEvent说明初始化事件对象用于同步。NDIS 默认为 NotificationEvent 未信号状态WDF 可指定事件类型和初始状态存储必须在非分页池。6. DMA 散列/聚合NDIS 函数NdisMInitializeScatterGatherDmaWDF 等效WdfDmaEnablerCreate说明初始化 DMA散列/聚合功能。NDIS 用于总线主设备WDF 需指定 DMA 类型和最大传输大小并先设置设备对齐要求。7. 字符串对象NDIS 函数NdisInitializeStringWDF 等效WdfStringCreate说明初始化/创建字符串对象。NDIS 设置 NDIS_STRING 结构WDF 创建框架字符串对象可传入 Unicode 字符串某些框架方法接受该句柄。8. 处理器信息NDIS 函数NdisSystemActiveProcessorCountWDF 等效KeGetCurrentProcessorNumberEx说明获取处理器相关信息。NDIS 返回活动处理器数量WDF 返回当前逻辑处理器编号并可输出组信息适用于 Windows 7 及以上。9. 寄存器写入单字节NDIS 函数NdisWriteRegisterUcharWDF 等效WDF_WRITE_REGISTER_UCHAR说明向内存映射的设备寄存器写入 UCHAR 值。两者功能完全一致寄存器需预先映射。总结迁移时注意 WDF 基于对象句柄如 WDFWORKITEM而 NDIS 多直接操作结构。部分 WDF API 同时支持 KMDF 和 UMDF部分仅限 KMDF如 DMA。IRQL 要求不同工作项在 PASSIVE_LEVEL自旋锁在 DISPATCH_LEVEL。WDF 创建类函数统一为 WdfXxxCreate 命名便于查找。