Я думаю, что правильный способ задать этот вопрос таков:
Как правильно делать сокеты TCP в коде ядра?
И я не уверен, что вы хотите использовать TCP только на уровне пакетов, потому что вы также, вероятно, захотите обрабатывать сегментацию TCP, фрагментацию IP, отправку только тогда, когда это позволяет размер удаленного окна, и генерацию ACK. Другими словами, если вы используете TCP-сервер в режиме ядра, вам нужен весь стек TCP ядра.
В любом случае, используйте Bing или Google для «сокетов ядра» или «ksocket».
Для Linux: http://ksocket.sourceforge.net/ Также проверьте в этом примере для UDP.
Для Windows: перейдите на эту страницу и загрузите образцы HttpDisk и KHttpd. Оба имеют драйвер устройства Windows, который использует аналогичную библиотеку «ksocket». (Ищите ksocket.c и ksocket.h в каждом)