Поделиться через


функция обратного вызова LPWSAOVERLAPPED_COMPLETION_ROUTINE (winsock2.h)

LPWSAOVERLAPPED_COMPLETION_ROUTINE является типом указателя функции. Вы реализуете соответствующую функцию обратного вызова в приложении и передаете ее таким функциям, как WSAIoctl, WSARecv и WSASend.

Система вызывает функцию обратного вызова, когда асинхронная операция ввода-вывода (I/O) завершена или отменена, а вызывающий поток находится в состоянии оповещения (с помощью функции SleepEx, MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx или WaitForMultipleObjectsEx с параметром fAlertable, равнымTRUE).

Синтаксис

LPWSAOVERLAPPED_COMPLETION_ROUTINE LpwsaoverlappedCompletionRoutine;

void LpwsaoverlappedCompletionRoutine(
  DWORD dwError,
  DWORD cbTransferred,
  LPWSAOVERLAPPED lpOverlapped,
  DWORD dwFlags
)
{...}

Параметры

dwError

Тип: IN DWORD

Состояние завершения ввода-вывода. Этот параметр может быть одним из кодов системных ошибок.

cbTransferred

Тип: IN DWORD

Количество переданных байтов. При возникновении ошибки этот параметр равен нулю.

lpOverlapped

Тип: IN LPWSAOVERLAPPED

Указатель на структуру WSAOVERLAPPED , заданную асинхронной функцией ввода-вывода.

Система не использует структуру WSAOVERLAPPED после вызова процедуры завершения, поэтому подпрограмма завершения может освободить память, используемую перекрывающейся структурой.

dwFlags

Тип: IN DWORD

Флаги, связанные с вызовом.

Возвращаемое значение

None

Remarks

См . LPOVERLAPPED_COMPLETION_ROUTINE.

Требования

   
Минимальная версия клиента Windows 10 сборки 20348
Минимальная версия сервера Windows 10 сборки 20348
Верхняя часть winsock2.h