2009-07-20 72 views
1

我有點困惑,因爲我已經讀過IRQL_PASSIVE中的「everything」,但我不太確定這是否包含winsock2或其他userland庫。我的正常理解是使用WSK接口。但如果我可以使用普通套接字,它會更加舒適。什麼網絡庫上的什麼IRQL?

因爲我在嘗試包含winsock時遇到了很多構建器錯誤,所以我有點不確定。由於搜索文檔沒有提供權威答案,所以我想說這是一個問題:我可以在IRQL_PASSIVE上真正訪問哪種類型的庫? IRQL是唯一的限制參數嗎?

回答

2

您不能從內核模式訪問(大部分)用戶文件庫。要麼你得到該庫的內核模式接口,要麼必須使用用戶模式服務(反向調用)。

Winsock有一個內核接口,請參見MSDN article

IRQL級別決定您可以使用哪種「內核服務」。因此,對於KeGetCurrentIrql()> = IRQL_DISPATCH,您不能依賴分頁(這會產生IRQL_NOT_LESS_OR_EQUAL錯誤檢查),並且不能(不應該)調用使用分頁的函數。

它不防止使用庫。

相關問題