2009-07-20 2 views
1

"모든 것"이 IRQL_PASSIVE에서 가능해야한다는 것을 읽었 기 때문에 다소 혼란 스럽지만 winsock2 또는 다른 userland 라이브러리가 포함되어 있는지 확실하지 않습니다. 내 정상적인 이해 WSK 인터페이스를 사용하는 것입니다. 그러나 정상적인 소켓을 사용할 수 있다면 훨씬 편할 것입니다.IRQL의 네트워크 라이브러리는 무엇입니까?

winsock을 포함 시키려고하면서 작성기 오류가 많이 발생하는 것으로 조금 확신이 들지 않습니다. 그리고 검색 문서가 권위있는 답변을 제공하지는 못하므로이 질문에 대답하고 싶습니다. IRQL_PASSIVE에서 실제로 어떤 라이브러리에 액세스 할 수 있습니까? 유일한 제한적인 매개 변수는 IRQL입니까?

답변

2

커널 모드에서 (대부분의) 사용자 토지 라이브러리에 액세스 할 수 없습니다. 해당 라이브러리에 대한 커널 모드 인터페이스를 얻거나 사용자 모드 서비스 (역 호출)를 사용해야합니다.

Winsock에는 커널 인터페이스가 있습니다 (이 정보는 MSDN article 참조).

IRQL 레벨은 사용할 수있는 '커널 서비스'를 결정합니다. 따라서 KeGetCurrentIrql()> = IRQL_DISPATCH의 경우 페이징에 의존 할 수 없으며 (IRQL_NOT_LESS_OR_EQUAL 버그 확인을 생성합니다) 페이징을 사용하는 함수를 호출 할 수 없습니까?

라이브러리의 사용을 막지 않습니다.

관련 문제