开发者

What's the IRP handler that transfers received packets to user process in windows?

As we know the windows kernel is driven by IRP(I/O request packet ),

when we request a webpage(or anything else),a IRP is received by 开发者_开发问答NIC ,what's that IRP exactly?


See the Windows TCP/IP Stack Components page for a list of the components which are involved in such a request.

The NDIS driver model does hide the IRP which gets passed around and exposes 'callback' functions for the components to inspect/forward/change the contents of send/receive requests.


NIC drive is NDIS framework which does not receive IRPs from protocol driver(Tcpip.sys); instead it exports function pointers for protocol driver to call.

Please refer to MSDN Initializing a Miniport Driver and NDIS Driver Stack.

On XP/2k3/2000: IRPs occurs at higher network layer using TDI framework; namely AFD.SYS sends TDI IoControl to Tcpip.sys. AFD is a TDI client which implements Winsock by sending IRPs to Tcpip.sys.

On Vista and later: TDI is deprecated, and if I am guessing right, AFD.SYS uses WinSock Kernel to communicate with Tcpip.sys. No IRPs.

Although TDI is deprecated on Vista, if you install a TDI client or filter, TDX.SYS will be loaded and emulates the TDI framework for you (via WinSock kernel also). In this case, we still see TDI IRPs from TDI-client ---(TDI)---> TDX ---(WSK)---> TCPIP.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜