diff --git a/conn/winrio/rio_windows.go b/conn/winrio/rio_windows.go index 2f13ec8..0a07c65 100644 --- a/conn/winrio/rio_windows.go +++ b/conn/winrio/rio_windows.go @@ -118,9 +118,17 @@ func Initialize() bool { if err != nil { return } + // While we should be able to stop here, after getting the function pointers, some anti-virus actually causes // failures in RIOCreateRequestQueue, so keep going to be certain this is supported. - cq, err = CreatePolledCompletionQueue(2) + var iocp windows.Handle + iocp, err = windows.CreateIoCompletionPort(windows.InvalidHandle, 0, 0, 0) + if err != nil { + return + } + defer windows.CloseHandle(iocp) + var overlapped windows.Overlapped + cq, err = CreateIOCPCompletionQueue(2, iocp, 0, &overlapped) if err != nil { return }