将接收到的数据包传输到 Windows 中的用户进程的 IRP 处理程序是什么?

发布于 2024-11-05 04:37:34 字数 88 浏览 3 评论 0原文

我们知道Windows内核是由IRP(I/O请求数据包)驱动的,

当我们请求网页(或其他任何东西)时,网卡会收到一个IRP,这个IRP到底是什么?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╰沐子 2024-11-12 04:37:34

有关组件列表,请参阅 Windows TCP/IP 堆栈组件页面此类请求涉及哪些内容。

NDIS 驱动程序模型确实隐藏了传递的 IRP,并公开了组件的“回调”函数来检查/转发/更改发送/接收请求的内容。

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.

像你 2024-11-12 04:37:34

NIC驱动是NDIS框架,它不从协议驱动程序(Tcpip.sys)接收IRP;相反,它导出函数指针供协议驱动程序调用。

请参阅 MSDN 初始化微型端口驱动程序NDIS 驱动程序堆栈

在 XP/2k3/2000 上:
IRP 使用 TDI 框架发生在更高的网络层;即 AFD.SYS 发送 TDI IoControl 到 Tcpip .sys。 AFD 是一个 TDI 客户端,它通过向 Tcpip.sys 发送 IRP 来实现 Winsock。

在 Vista 及更高版本:TDI 已弃用,如果我猜对了,AFD.SYS 使用 WinSock 内核 与 Tcpip.sys 通信。没有 IRP。

尽管 TDI 在 Vista 上已被弃用,但如果您安装 TDI 客户端或过滤器,TDX.SYS 将被加载并为您模拟 TDI 框架(也通过 WinSock 内核)。在这种情况下,我们仍然看到来自 TDI 客户端的 TDI IRP ---(TDI)---> TDX ---(WSK)---> TCP/IP。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文