Функция 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 доступен определенный код ошибки.
Код ошибки | Значение |
---|---|
Параметр lpfnCallback или lpdwContext не является допустимой частью адресного пространства процесса. | |
Недопустимый параметр 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 |