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


Функция WPUQueryBlockingCallback (ws2spi.h)

Функция WPUQueryBlockingCallback возвращает указатель на функцию обратного вызова, которую поставщик услуг должен периодически вызывать при обслуживании блокирующих операций.

Синтаксис

int WPUQueryBlockingCallback(
  [in]  DWORD              dwCatalogEntryId,
  [out] LPBLOCKINGCALLBACK *lplpfnCallback,
  [out] PDWORD_PTR         lpdwContext,
  [out] LPINT              lpErrno
);

Параметры

[in] dwCatalogEntryId

Дескриптор, определяющий поставщика вызывающей службы.

[out] lplpfnCallback

Указатель, получающий функцию обратного вызова блокировки.

[out] lpdwContext

Указатель, получающий контекстное значение, которое поставщик услуг должен передать в блокирующий обратный вызов.

[out] lpErrno

Указатель на код ошибки.

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

Если ошибка не возникает, WPUQueryBlockingCallback возвращает ноль и сохраняет указатель на функцию обратного вызова блокировки в lpfnCallback и связанное значение контекста в lpdwContext. В противном случае он возвращает SOCKET_ERROR, и в lpErrno доступен определенный код ошибки.

Код ошибки Значение
WSAEFAULT
Параметр lpfnCallback или lpdwContext не является допустимой частью адресного пространства процесса.
WSAEINVAL
Недопустимый параметр dwCatalogEntryId .
 
 

Комментарии

Функция WPUQueryBlockingCallback возвращает указатель на функцию обратного вызова в lpfnCallback , периодически вызываемую во время операций блокировки. Эта функция также возвращает значение контекста в lpdwContext для передачи в блокирующий обратный вызов.

В Windows эта функция может возвращать значение NULL в lpfnCallback, указывая, что не установлен определенный пользователем перехватчик блокировки. В этом случае поставщик услуг должен использовать собственные объекты синхронизации Windows для реализации блокировки.

LPBLOCKINGCALLBACK определяется следующим образом:

typedef BOOL ( CALLBACK FAR * LPBLOCKINGCALLBACK )( DWORD dwContext );

Обратный вызов блокировки возвращает значение TRUE , если поставщик услуг продолжит ожидать завершения операции блокировки. Если операция блокировки была отменена с помощью WSPCancelBlockingCall, будет возвращено значение FALSE.

Для всех отсутствующих компонентов адреса по умолчанию будет использоваться разумное значение, если это возможно. Например, отсутствующий номер порта по умолчанию будет равен нулю.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ws2spi.h

См. также раздел

WSPCancelBlockingCall