[함수 검색은 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다.]
알림 중에 추가, 제거 또는 업데이트 이벤트를 수신합니다.
구문
HRESULT OnEvent(
[in] DWORD dwEventID,
[in] FDQUERYCONTEXT fdqcQueryContext,
[in] const WCHAR *pszProvider
);
매개 변수
[in] dwEventID
이벤트의 유형입니다.
| 값 | 의미 |
|---|---|
|
공급자가 검색을 완료했습니다. 일반적으로 이 알림은 프로토콜이 검색 결과가 허용되는 정의된 간격을 지정하는 네트워크 프로토콜 공급자에 의해 전송됩니다. WSD 및 SSDP 공급자는 모두 이 이벤트 유형을 사용합니다.
이 알림이 전송되면 쿼리는 초기 검색 또는 프로브 요청에 들어오는 모든 응답을 무시합니다. 그러나 쿼리는 여전히 Hello 또는 Bye 메시지를 모니터링합니다(디바이스가 추가되거나 제거되는 시기를 나타내는 데 사용됨). 쿼리는 쿼리 개체에서 Release 가 호출될 때까지 이러한 이벤트를 계속 모니터링합니다. 치명적인 오류가 발생하면 이 알림이 전송되지 않습니다. 특정 공급자가 이 이벤트를 구현하거나 사용하는 방법에 대한 자세한 내용은 기본 제공 공급자 항목의 공급자 설명서 링크를 참조하세요. |
|
함수 검색 클라이언트에서 사용되지 않습니다. |
|
함수 검색 클라이언트에서 사용되지 않습니다. |
|
NIC의 IP 주소가 변경되었습니다. WSD 공급자는 이 알림을 구현합니다. 전원 이벤트가 발생하거나(예: 컴퓨터가 절전 모드에서 해제된 경우) 또는 노트북으로 로밍할 때 이벤트가 전송될 수 있습니다.
참고 이 값은 Windows Vista에서 사용할 수 없습니다. WINDOWS Vista에서 SP1, Windows Server 2008 및 후속 버전의 운영 체제에서 사용할 수 있습니다.
|
[in] fdqcQueryContext
변경 알림에 등록된 컨텍스트입니다. FDQUERYCONTEXT 형식은 DWORDLONG으로 정의됩니다. 이 매개 변수는 NULL일 수 있습니다.
[in] pszProvider
공급자의 이름입니다.
반환 값
클라이언트 프로그램의 OnEvent 메서드 구현은 다음 HRESULT 값 중 하나를 호출자에게 반환해야 합니다.
| 반환 코드 | Description |
|---|---|
|
메서드가 완료되었습니다. |
|
입력 매개 변수 중 하나의 값이 잘못되었습니다. |
설명
함수 검색 공급자(SSDP 및 WSD)는 이 메서드를 사용하여 검색 단계가 완료되었다는 알림을 구현합니다.
이 메서드의 쿼리 개체에 대해 Release 를 호출하지 마세요. 이렇게 하면 교착 상태가 발생할 수 있습니다. 콜백이 진행되는 동안 다른 스레드의 쿼리 개체에서 Release 가 호출되면 콜백이 완료될 때까지 개체가 해제되지 않습니다.
공급자가 함수 검색에 전달한 모든 알림은 큐에 대기되고 클라이언트에 하나씩 반환됩니다. 콜백은 클라이언트가 한 번에 하나의 알림만 수신하도록 동기화됩니다.
다른 IFunctionDiscoveryNotification 메서드 호출은 다른 스레드에서 수행될 수 있으므로 메서드를 종료하기 전에 호출 중에 스레드 상태에 대한 모든 변경 내용을 복원해야 합니다.
예제
다음 예제에서는 OnEvent 처리기 구현을 보여줍니다. CMyNotificationListener 클래스는 IFunctionDiscoveryNotification 항목에 정의되어 있습니다.
#include <windows.h>
HRESULT CMyNotificationListener::OnEvent(
IN DWORD dwEventID,
IN FDQUERYCONTEXT fdqcQueryContext,
IN const WCHAR * pszProvider
)
{
HRESULT hr = S_OK;
HANDLE hSearchComplete = INVALID_HANDLE_VALUE;
hSearchComplete = OpenEventW( EVENT_ALL_ACCESS,
FALSE,
L"SearchComplete" );
if( NULL == hSearchComplete )
{
return hr;
}
if( FD_EVENTID_SEARCHCOMPLETE == dwEventID )
{
SetEvent( hSearchComplete );
}
CloseHandle( hSearchComplete );
return hr;
}
요구 사항
| 요구 사항 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
| 지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
| 대상 플랫폼 | Windows |
| 헤더 | functiondiscoveryapi.h |