// Public NTLite net ABI declarations shared between kernel, drivers, and user mode. #pragma once // net_abi.h - native networking ABI shared by the kernel socket facade // and network stack provider drivers. #include #include #define SYS_AF_INET 2u #define SYS_AF_INET6 10u #define SYS_SOCK_STREAM 1u #define SYS_SOCK_DGRAM 2u #define SYS_SOCK_RAW 3u #define SYS_IPPROTO_ICMP 1u #define SYS_IPPROTO_TCP 6u #define SYS_IPPROTO_UDP 17u #define SYS_IPPROTO_ICMPV6 58u #define SYS_SHUTDOWN_READ 0u #define SYS_SHUTDOWN_WRITE 1u #define SYS_SHUTDOWN_BOTH 2u #define SYS_SOCKET_ADDRESS_SIZE 28u #define SYS_RESOLVE_HOST_NAME_MAX 255u #define SYS_SOCKET_OPT_RECV_TIMEOUT_MS 1u #define SYS_SOCKET_OPT_SEND_TIMEOUT_MS 2u #define SYS_SOCKET_OPT_NONBLOCKING 3u #define SYS_POLL_READ 0x0001u #define SYS_POLL_WRITE 0x0002u #define SYS_POLL_ERROR 0x0004u #define SYS_POLL_HANGUP 0x0008u #define SYS_POLL_INVALID 0x0010u #define SYS_POLL_TIMEOUT_INFINITE 0xFFFFFFFFu // Kernel socket providers use the same tagged native address shape as syscalls. typedef struct SYS_SOCKET_ADDRESS_K { uint16_t Family; uint16_t Size; uint16_t Port; uint8_t Address[16]; uint32_t ScopeId; } SYS_SOCKET_ADDRESS_K; typedef struct SYS_POLLFD_K { uint32_t Handle; uint32_t Events; uint32_t ReturnedEvents; } SYS_POLLFD_K;