IWSDDeviceHost::AddDynamicService 메서드(wsdhost.h)
들어오는 요청에 대한 서비스 개체를 등록하지만 디바이스 호스트 메타데이터에 서비스를 추가하지는 않습니다. 일시적(동적) 서비스에 사용됩니다.
구문
HRESULT AddDynamicService(
[in] LPCWSTR pszServiceId,
[in, optional] LPCWSTR pszEndpointAddress,
[in, optional] const WSD_PORT_TYPE *pPortType,
[in, optional] const WSDXML_NAME *pPortName,
[in, optional] const WSDXML_ELEMENT *pAny,
[in, optional] IUnknown *pService
);
매개 변수
[in] pszServiceId
동적 서비스의 ID입니다. 서비스 ID는 서비스 호스트 메타데이터 및 등록된 다른 동적 서비스의 모든 서비스 ID와 구별되어야 합니다. pszServiceId는 URI여야 합니다.
[in, optional] pszEndpointAddress
이 서비스의 엔드포인트 주소로 사용할 선택적 URI입니다. 지정되지 않은 경우 디바이스 호스트는 모든 로컬 전송 주소에서 서비스를 사용할 수 있어야 한다고 가정합니다.
[in, optional] pPortType
포트 형식을 지정하는 WSD_PORT_TYPE 구조체에 대한 참조입니다. NULL일 수 있습니다. pPortType 및 pPortName 중 하나만 지정합니다.
[in, optional] pPortName
서비스의 형식을 지정하는 WSDXML_NAME 구조체에 대한 참조로, 서비스를 지정된 포트와 연결합니다. pPortType 및 pPortName 중 하나만 지정합니다.
[in, optional] pAny
동적 서비스 메타데이터에 포함할 확장 가능한 섹션에 대한 선택적 참조입니다.
[in, optional] pService
등록할 호스트 서비스 개체에 대한 선택적 참조입니다.
반환 값
가능한 반환 값에는 다음이 포함되지만 이에 국한되지는 않습니다.
반환 코드 | 설명 |
---|---|
|
메서드가 성공적으로 완료되었습니다. |
|
pszServiceId 는 NULL입니다. |
|
pszServiceId 또는 pszEndpointAddress 문자의 길이가 WSD_MAX_TEXT_LENGTH(8192)를 초과하거나 pPortType 및 pPortName이 모두 지정됩니다. |
|
메서드가 실패했습니다. 호스트가 초기화되지 않았거나 pszServiceId 로 지정된 서비스를 찾을 수 없어 실패했을 수 있습니다. Init를 호출하여 디바이스 호스트를 초기화합니다. |
|
메모리가 부족하여 작업을 완료할 수 없습니다. |
설명
이 메서드가 호출되면 디바이스는 서비스 개체에 대한 참조를 추가하고 해당 메서드를 호출하여 서비스에 주소가 지정된 메시지를 요청합니다. 디바이스 호스트에서 RemoveDynamicService 메서드를 호출하여 서비스에 대한 참조를 해제하고 서비스에서 메서드 호출을 중지합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wsdhost.h(Wsdapi.h 포함) |
DLL | Wsdapi.dll |