다음을 통해 공유


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일 수 있습니다. pPortTypepPortName 중 하나만 지정합니다.

[in, optional] pPortName

서비스의 형식을 지정하는 WSDXML_NAME 구조체에 대한 참조로, 서비스를 지정된 포트와 연결합니다. pPortTypepPortName 중 하나만 지정합니다.

[in, optional] pAny

동적 서비스 메타데이터에 포함할 확장 가능한 섹션에 대한 선택적 참조입니다.

[in, optional] pService

등록할 호스트 서비스 개체에 대한 선택적 참조입니다.

반환 값

가능한 반환 값에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
S_OK
메서드가 성공적으로 완료되었습니다.
E_POINTER
pszServiceIdNULL입니다.
E_INVALIDARG
pszServiceId 또는 pszEndpointAddress 문자의 길이가 WSD_MAX_TEXT_LENGTH(8192)를 초과하거나 pPortTypepPortName이 모두 지정됩니다.
E_FAIL
메서드가 실패했습니다. 호스트가 초기화되지 않았거나 pszServiceId 로 지정된 서비스를 찾을 수 없어 실패했을 수 있습니다. Init를 호출하여 디바이스 호스트를 초기화합니다.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.

설명

이 메서드가 호출되면 디바이스는 서비스 개체에 대한 참조를 추가하고 해당 메서드를 호출하여 서비스에 주소가 지정된 메시지를 요청합니다. 디바이스 호스트에서 RemoveDynamicService 메서드를 호출하여 서비스에 대한 참조를 해제하고 서비스에서 메서드 호출을 중지합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wsdhost.h(Wsdapi.h 포함)
DLL Wsdapi.dll

참고 항목

IWSDDeviceHost