PNRP 및 WSANSPIoctl
PNRP는 WSANSPIoctl 함수를 사용하여 다음과 같은 변경 내용에 대한 알림을 받습니다.
- 네트워크 클라우드 목록
- 이름 확인 요청 결과 가용성
WSALookupServiceBegin에 대한 첫 번째 호출은 클라이언트가 알림을 받을 정보 유형을 정의합니다. 클라이언트는 Windows 메시지, 완료 루틴, WSAEVENT 개체에 대한 핸들 또는 포트로 알림을 받을 수 있습니다. 옵션 및 lpCompletion 매개 변수 설정에 대한 자세한 내용은 WSANSPIoctl을 참조하세요.
WSALookupServiceNext를 호출한 후에도 알림을 계속 받으려면 애플리케이션에서 WSANSPIoctl을 다시 호출해야 합니다.
WSANSPIoctl이 호출되더라도 WSALookupServiceNext 함수는 차단됩니다. WSALookupServiceNext를 호출하기 전에 차단이 문제인 경우 애플리케이션이 알림을 받을 때까지 기다려야 합니다.
이 함수를 호출할 때 매개 변수에는 다음 값이 있어야 합니다.
-
hLookup
-
WSALookupServiceBegin이 반환하는 핸들을 지정합니다.
-
dwControlCode
-
SIO_NSP_NOTIFY_CHANGE 합니다.
-
lpvInBuffer
-
NULL이어야 합니다.
-
cbInBuffer
-
0이어야 합니다.
-
lpvOutBuffer
-
NULL이어야 합니다.
-
cbOutBuffer
-
0이어야 합니다.
-
lpcbBytesReturned
-
NULL이어야 합니다.
-
lpCompletion
-
WSACOMPLETION 구조체에 대한 NULL 또는 포인터를 지정합니다.
알림이 수신되면 WSALookupServiceNext 를 한 번 호출하여 결과를 가져옵니다.
검색을 종료하려면 WSALookupServiceEnd를 호출합니다.
해결 알림
이름 확인 항목이 추가될 때마다 클라이언트에 알림을 받을 수 있습니다. 그런 다음 클라이언트는 WSALookupServiceNext 를 호출하여 확인 데이터를 가져옵니다.
클라이언트가 이 기술을 사용하지 않는 경우 지정된 시간 제한이 발생할 때까지 WSALookupServiceNext에 대한 호출을 차단할 수 있습니다.
클라우드 목록 알림
클라우드 집합이 변경될 때마다 클라이언트에 알림을 받을 수 있습니다.
WSALookupServiceNext 함수는 WSA_E_NO_MORE 집합 구분 기호로 반환합니다. 클라이언트 애플리케이션은 이 메시지가 반환될 때까지 기존 클라우드를 열거한 다음 알림 체계를 사용하여 후속 변경 내용이 발생할 때까지 검색해야 합니다. 클라이언트 애플리케이션은 WSALookupServiceNext를 호출할 수도 있지만 변경이 발생할 때까지 호출이 차단됩니다.
WSALookupServiceNext 함수는 WSAQUERYSET 구조에서 클라우드를 반환합니다. 다음 플래그 중 하나가 dwOutputFlags 멤버에 반환됩니다.
값 | Description |
---|---|
RESULT_IS_ADDED | 반환되는 클라우드가 추가됩니다. |
RESULT_IS_CHANGED | 반환되는 클라우드가 변경되었습니다. |
RESULT_IS_DELETED | 반환되는 클라우드가 삭제되고 유효하지 않습니다. |
관련 항목
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET