1

我有些困惑,因为我读过 IRQL_PASSIVE 应该可以实现“一切”,但我不确定这是否包括 winsock2 或其他用户空间库。我的正常理解是使用 WSK 接口。但是如果我能使用普通的插座会舒服得多。

由于我在尝试包含 winsock 时经常遇到构建器错误,所以我有点不确定。由于搜索文档没有提供权威答案,我想将其作为一个问题提出:我可以在 IRQL_PASSIVE 上真正访问哪些类型的库?IRQL 是唯一的限制参数吗?

4

1 回答 1

2

您无法从内核模式访问(大多数)用户域库。要么您获得该库的内核模式接口,要么您必须使用用户模式服务(反向调用)。

Winsock 有一个内核接口,请参阅这篇MSDN 文章

IRQL 级别决定了您可以使用哪些“内核服务”。因此,对于 KeGetCurrentIrql() >= IRQL_DISPATCH,您不能依赖分页(这会产生 IRQL_NOT_LESS_OR_EQUAL 错误检查)并且不能(不应该?)调用使用分页的函数。

它不会阻止使用库。

于 2009-07-20T12:29:54.410 回答