Windows:如何从(NDIS)内核驱动程序生成线程?
建议使用哪个函数在 NDIS5/6 上下文中生成新线程?寻找一些保证在 IRQL=PASSIVE 下工作的东西(例如,不会无缘无故地出现蓝屏);通过快速检查 ndis.h
内容,什么也没发现。
此外,计划使用新生成的线程来调用 NdisFreeMemory* 系列,从不同线程释放已分配但未使用的内存是否会导致任何问题?
Which function is recommended to spawn a new thread within NDIS5/6 context? Looking for something that is guaranteed to work at IRQL=PASSIVE (e.g. no bsods out of nothing); by a quick examination of ndis.h
contents, found nothing.
Also, it is planned to use a newly spawned thread for calling upon NdisFreeMemory*
family, will it be causing any problems to free allocated, but unused memory from a different thread?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
线程处理不属于 NDIS 的范围。如果您需要启动一个新线程,请使用标准内核例程(例如
PsCreateSystemThread
)。请注意,通常计时器和工作项足以满足大多数微型端口的需求。 NDIS 微型端口创建自己的线程是不寻常的,尽管我认为在某些有效的情况下它可能是一个公平的设计。可以在一个线程上分配内存并在另一个线程上释放内存。
Threading is outside the scope of NDIS. If you need to start a new thread, use the standard kernel routines (like
PsCreateSystemThread
). Note that usually timers and work items are sufficicent for most miniport needs. It is unusual for an NDIS miniport to create its own thread, although I suppose there are valid cases where it might be a fair design.It is ok to allocate memory on one thread and free it on another.