GetQueuedCompletionStatus function Null safety kernel32

int GetQueuedCompletionStatus(
  1. int CompletionPort,
  2. Pointer<Uint32> lpNumberOfBytesTransferred,
  3. Pointer<IntPtr> lpCompletionKey,
  4. Pointer<Pointer<OVERLAPPED>> lpOverlapped,
  5. int dwMilliseconds

Attempts to dequeue an I/O completion packet from the specified I/O completion port. If there is no completion packet queued, the function waits for a pending I/O operation associated with the completion port to complete.

BOOL GetQueuedCompletionStatus(
  HANDLE       CompletionPort,
  LPDWORD      lpNumberOfBytesTransferred,
  PULONG_PTR   lpCompletionKey,
  LPOVERLAPPED *lpOverlapped,
  DWORD        dwMilliseconds


int GetQueuedCompletionStatus(
        int CompletionPort,
        Pointer<Uint32> lpNumberOfBytesTransferred,
        Pointer<IntPtr> lpCompletionKey,
        Pointer<Pointer<OVERLAPPED>> lpOverlapped,
        int dwMilliseconds) =>
    _GetQueuedCompletionStatus(CompletionPort, lpNumberOfBytesTransferred,
        lpCompletionKey, lpOverlapped, dwMilliseconds);