开发者

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

开发者 https://www.devze.com 2023-03-02 14:26 出处:网络
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/

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

精彩评论

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