Что такое обработчик IRP, который передает полученные пакеты пользовательскому процессу в Windows? - PullRequest
0 голосов
/ 04 мая 2011

Как мы знаем, ядро ​​Windows управляется IRP (пакет запроса ввода / вывода),

когда мы запрашиваем веб-страницу (или что-то еще), NIC получает IRP, что это за IRP?

Ответы [ 2 ]

0 голосов
/ 05 мая 2011

NIC-диск - это структура NDIS, которая не получает IRP от драйвера протокола (Tcpip.sys);вместо этого он экспортирует указатели функций для вызова драйвера протокола.

См. MSDN Инициализация драйвера минипорта и Стек драйвера NDIS .

На XP / 2k3 / 2000 : IRP происходят на более высоком сетевом уровне с использованием инфраструктуры TDI;а именно AFD.SYS отправляет TDI IoControl в Tcpip.sys.AFD - это клиент TDI, который реализует Winsock, отправляя IRP в Tcpip.sys.

В Vista и более поздних версиях : TDI устарел, и, если я угадаю правильно, AFD.SYS использует WinSock Kernel для связи с Tcpip.sys.Нет IRP.

Хотя TDI устарела в Vista, если вы установите TDI-клиент или фильтр, TDX.SYS будет загружен и эмулирует инфраструктуру TDI для вас (также через ядро ​​WinSock).В этом случае мы все еще видим IRP TDI от клиента TDI --- (TDI) ---> TDX --- (WSK) ---> TCPIP.

0 голосов
/ 04 мая 2011

См. Страницу Компоненты стека TCP / IP Windows для получения списка компонентов, которые участвуют в таком запросе.

Модель драйвера NDIS скрывает IRP, который передается вокруги предоставляет функции «обратного вызова» для компонентов для проверки / пересылки / изменения содержимого запросов на отправку / получение.

...