A computer-implemented method, comprising: registering a user-mode virtual memory buffer corresponding to an application; allocating a completion queue from the user-mode virtual memory buffer and pinning the completion queue to physical memory; mapping the completion queue to a first kernel-mode system address in a kernel, the completion queue configured to receive completion notifications from a kernel-mode execution thread via the kernel-mode system address and to enable access to the completion notifications by the application via the user-mode virtual memory buffer; registering a socket configured to provide data requests from the application to the kernel, the registering the socket comprising: allocating a request queue from the user-mode virtual memory buffer and pinning the request queue to the physical memory; mapping the request queue to a second kernel-mode system address, the request queue configured to receive data from the application via the user-mode virtual memory buffer and to enable access to the data by the kernel-mode execution thread via the second kernel-mode system address; and identifying the completion queue to the socket; receiving a request from the application for the kernel to handle the data in the request queue; issuing a system call to the kernel for the kernel-mode execution thread to handle the request; receiving an additional request from the application for the kernel to handle additional data in the request queue, and the kernel-mode execution thread handling the additional request without an additional system call being issued to the kernel. registering a user-mode virtual memory buffer corresponding to an application; allocating a completion queue from the user-mode virtual memory buffer and pinning the completion queue to physical memory; mapping the completion queue to a first kernel-mode system address in a kernel, the completion queue configured to receive completion notifications from a kernel-mode execution thread via the kernel-mode system address and to enable access to the completion notifications by the application via the user-mode virtual memory buffer; registering a socket configured to provide data requests from the application to the kernel, the registering the socket comprising: allocating a request queue from the user-mode virtual memory buffer and pinning the request queue to the physical memory; mapping the request queue to a second kernel-mode system address, the request queue configured to receive data from the application via the user-mode virtual memory buffer and to enable access to the data by the kernel-mode execution thread via the second kernel-mode system address; and identifying the completion queue to the socket; allocating a request queue from the user-mode virtual memory buffer and pinning the request queue to the physical memory; mapping the request queue to a second kernel-mode system address, the request queue configured to receive data from the application via the user-mode virtual memory buffer and to enable access to the data by the kernel-mode execution thread via the second kernel-mode system address; and identifying the completion queue to the socket; receiving a request from the application for the kernel to handle the data in the request queue; issuing a system call to the kernel for the kernel-mode execution thread to handle the request; receiving an additional request from the application for the kernel to handle additional data in the request queue, and the kernel-mode execution thread handling the additional request without an additional system call being issued to the kernel.