如何在内核模式驱动程序中使用 Winsock 内核 (WSK) 发送原始套接字数据包?

How to send raw socket packets using Winsock Kernel (WSK) in kernel-mode driver?

我正在为 Win7 及更高版本开发 内核模式驱动程序。我想在驱动程序中发送自定义IP数据包(我想指定IP层的所有字段)。我找到了 Winsock Kernel (WSK) 技术,但它只说明了如何发送和接收 TCP 和 UDP 数据包。我知道在用户模式下,WinSock API 中有 raw socket。所以我想知道 Winsock 内核是否也有原始套接字接口?谢谢。

WskSocket 支持 TCPUDP 和 "raw sockets" 用于自定义 IP paquets:https://msdn.microsoft.com/en-us/library/windows/hardware/ff571149%28v=vs.85%29.aspx

SocketType [in]

The type of socket that is being created. The following socket types are supported:

SOCK_STREAM

    Supports reliable connection-oriented byte stream communication.
SOCK_DGRAM

    Supports unreliable connectionless datagram communication.
SOCK_RAW

    Supports raw access to the transport protocol.