Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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 |