다음을 통해 공유


IWDFDevice2::CreateRemoteInterface 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]

CreateRemoteInterface 메서드는 디바이스 인터페이스를 나타내는 원격 인터페이스 개체를 만듭니다.

구문

HRESULT CreateRemoteInterface(
  [in]           IWDFRemoteInterfaceInitialize *pRemoteInterfaceInit,
  [in, optional] IUnknown                      *pCallbackInterface,
  [out]          IWDFRemoteInterface           **ppRemoteInterface
);

매개 변수

[in] pRemoteInterfaceInit

드라이버의 IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival 콜백 함수가 받은 IWDFRemoteInterfaceInitialize 인터페이스에 대한 포인터입니다.

[in, optional] pCallbackInterface

선택적 드라이버 제공 콜백 인터페이스에 대한 포인터입니다. 드라이버가 해당 인터페이스를 지원하는 경우 이 인터페이스의 IUnknown::QueryInterface 메서드는 드라이버의 IRemoteInterfaceCallbackEventIRemoteInterfaceCallbackRemoval 인터페이스에 대한 포인터를 반환해야 합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[out] ppRemoteInterface

새 원격 인터페이스 개체의 IWDFRemoteInterface 인터페이스에 대한 포인터를 수신하는 드라이버 제공 위치에 대한 포인터입니다.

반환 값

CreateRemoteInterface 는 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드는 다음 값을 반환할 수 있습니다.

반환 코드 설명
E_OUTOFMEMORY
프레임워크의 메모리 할당 시도가 실패했습니다.
 

이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.

설명

드라이버가 CreateRemoteInterface를 호출하는 경우 IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival 콜백 함수 내에서 호출해야 합니다.

CreateRemoteInterface 및 디바이스 인터페이스 사용에 대한 자세한 내용은 UMDF 기반 드라이버에서 디바이스 인터페이스 사용을 참조하세요.

예제

다음 코드 예제에서는 원격 인터페이스 개체를 만들고, 원격 대상 개체를 만들고, I/O 작업에 대한 원격 대상을 여는 IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival 콜백 함수를 보여 줍니다.

void 
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
    __in IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit
    )
{
    HRESULT hr = S_OK;

    //
    // Create a new remote interface object and provide a callback 
    // object to handle remote interface events.
    //
    CComPtr<IWDFRemoteInterface> fxRemoteInterface;
    hr = m_FxDevice->CreateRemoteInterface(FxRemoteInterfaceInit, 
                                           MyRemoteInterfaceIUnknown, 
                                           &fxRemoteInterface);
    if (FAILED(hr)) goto Error;
    //
    // Create a new remote target object and provide a callback 
    // object to handle remote target events.
    //
    CComPtr<IWDFRemoteTarget> fxTarget;
    hr = m_FxDevice->CreateRemoteTarget(MyRemoteTargetIUnknown,
                                        fxRemoteInterface,
                                        &fxTarget);
    if (FAILED(hr)) goto Error;

    //
    // Open the remote interface with read/write access.
    //
    hr = FxTarget->OpenRemoteInterface(fxRemoteInterface, 
                                       NULL,
                                       GENERIC_READ | GENERIC_WRITE,
                                       NULL);
    if (FAILED(hr)) goto Error;
...
}

요구 사항

요구 사항
지원 종료 UMDF 2.0 이상에서는 사용할 수 없습니다.
대상 플랫폼 데스크톱
최소 UMDF 버전 1.9
머리글 wudfddi.h(Wudfddi.h 포함)
DLL WUDFx.dll

추가 정보

IWDFDevice2

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface