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 은 0을 반환하고 lpfnCallback 의 차단 콜백 함수에 대한 포인터와 lpdwContext의 연결된 컨텍스트 값을 저장합니다. 그렇지 않으면 SOCKET_ERROR 반환하고 lpErrno에서 특정 오류 코드를 사용할 수 있습니다.
오류 코드 | 의미 |
---|---|
lpfnCallback 또는 lpdwContext 매개 변수는 프로세스 주소 공간의 유효한 부분이 아닙니다. | |
dwCatalogEntryId 매개 변수가 잘못되었습니다. |
설명
WPUQueryBlockingCallback 함수는 차단 작업 중에 주기적으로 호출될 lpfnCallback의 콜백 함수에 대한 포인터를 반환합니다. 또한 이 함수는 차단 콜백에 전달될 lpdwContext 의 컨텍스트 값을 반환합니다.
Windows에서 이 함수는 lpfnCallback에서 null을 반환할 수 있으며, 이는 사용자 정의 차단 후크가 설치되지 않았음을 나타냅니다. 이 경우 서비스 공급자는 네이티브 Windows 동기화 개체를 사용하여 차단을 구현해야 합니다.
LPBLOCKINGCALLBACK은 다음과 같이 정의됩니다.
typedef BOOL ( CALLBACK FAR * LPBLOCKINGCALLBACK )( DWORD dwContext );
서비스 공급자가 차단 작업이 완료될 때까지 계속 대기하는 경우 차단 콜백은 TRUE 를 반환합니다. WSPCancelBlockingCall을 사용하여 차단 작업이 취소된 경우 FALSE를 반환합니다.
주소의 누락된 구성 요소는 가능한 경우 기본적으로 적절한 값으로 설정됩니다. 예를 들어 누락된 포트 번호는 기본적으로 0으로 설정됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ws2spi.h |