libwsk is a wrapper for the WSK (Winsock-Kernel) interface. With libwsk, kernel-mode software modules can perform network I/O operations using the same socket programming concepts and interface that are supported by user-mode Winsock2.
IDE:Visual Studio 2019 or higher
if target OS is Windows7, please set these.
libwsk property pages -> Driver Settings -> Target OS Version = Windows 7 libwsk Property pages -> Driver Settings -> Target Platform = Desktop
git clone --recurse-submodules https://github.com/MiroKaku/libwsk.git
- Open the
msvc/libwsk.sln
and build it. - Include
libwsk.lib
to your project. referunittest
.
BSD sockets | WSA (Windows Sockets API) | WSK (Windows Sockets Kernel) | State |
---|---|---|---|
- | WSKStartup | √ | |
- | WSKCleanup | √ | |
socket | WSKSocket | √ | |
closesocket | WSKCloseSocket | √ | |
bind | - | WSKBind | √ |
listen | - | WSKListen | √ |
connect | WSKConnect | √ | |
shutdown | WSKDisconnect | √ | |
accept | WSKAccept | √ | |
send | WSKSend | √ | |
recv | WSKRecv | √ | |
sendto | WSKSendTo | √ | |
recvfrom | WSKRecvFrom | √ | |
ioctlsocket | WSKIoctl | √ | |
setsockopt | - | WSKSetSocketOpt | √ |
getsockopt | - | WSKGetSocketOpt | √ |
getaddrinfo | WSKGetAddrInfo | √ | |
freeaddrinfo | WSKFreeAddrInfo | √ | |
getnameinfo | WSKGetNameInfo | √ | |
inet_ntoa | WSKAddressToString | √ | |
inet_addr | WSKStringToAddress | √ | |
- | WSKCreateEvent | √ | |
- | WSKGetOverlappedResult | √ | |
... | ... | ... | - |