다음을 통해 공유


IWDFRemoteTarget::OpenRemoteInterface 메서드(wudfddi.h)

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

OpenRemoteInterface 메서드는 드라이버가 I/O 요청을 보낼 수 있도록 디바이스 인터페이스를 엽니다.

구문

HRESULT OpenRemoteInterface(
  [in]           IWDFRemoteInterface         *pRemoteInterface,
  [in, optional] PCWSTR                      pszRelativeFileName,
  [in]           DWORD                       DesiredAccess,
  [in, optional] PUMDF_IO_TARGET_OPEN_PARAMS pOpenParams
);

매개 변수

[in] pRemoteInterface

IWDFDevice2:: CreateRemoteInterface 에 대한 이전 호출에서 드라이버가 가져온 IWDFRemoteInterface 인터페이스에 대한 포인터입니다.

[in, optional] pszRelativeFileName

프레임워크가 디바이스 인터페이스의 기호 링크 이름에 추가하는 호출자 제공 null로 종료된 문자열에 대한 선택적 포인터입니다.

[in] DesiredAccess

파일에 대한 호출자의 원하는 액세스를 지정하는 비트 마스크입니다. 이 멤버에 대한 자세한 내용은 Windows SDK CreateFileDesiredAccess 매개 변수를 참조하세요.

[in, optional] pOpenParams

추가 매개 변수를 포함하는 호출자가 할당한 UMDF_IO_TARGET_OPEN_PARAMS 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

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

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

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

프레임워크가 파일을 열 수 없는 경우 프레임워크의 검증 도구 에서 오류를 보고합니다.

설명

드라이버의 IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival 콜백 함수가 디바이스 인터페이스를 사용할 수 있다는 알림을 받은 후 드라이버가 IWDFDevice2::CreateRemoteInterface 를 호출하여 원격 인터페이스 개체를 만든 후 드라이버는 OpenRemoteInterface 를 호출하여 I/O 요청을 디바이스 인터페이스로 보낼 수 있습니다.

디바이스 인터페이스는 일반적으로 로컬 서비스 계정인 UMDF 기반 드라이버를 로드한 계정에서 액세스할 수 있어야 합니다. 그러나 드라이버가 OpenRemoteInterface를 호출할 때 가장을 사용하는 경우 가장된 계정으로 디바이스 인터페이스에 액세스할 수 있어야 합니다.

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

예제

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

void 
STDMETHODCALLTYPE
CMyDevice::OnRemoteInterfaceArrival(
    __in IWDFRemoteInterfaceInitialize * FxRemoteInterfaceInit
    )
...
    HRESULT hr;
    CComPtr<IWDFRemoteInterface> fxRemoteInterface;
    CComPtr<IWDFRemoteTarget> m_FxTarget;

    hr = m_FxDevice->CreateRemoteInterface(FxRemoteInterfaceInit, 
                                           NULL, 
                                           &fxRemoteInterface);
    if (FAILED(hr)) goto Error;
    hr = FxDevice->CreateRemoteTarget(unknown,
                                      fxRemoteInterface,
                                      &m_FxTarget);
    if (FAILED(hr)) goto Error;
    hr = m_FxTarget->OpenRemoteInterface(fxRemoteInterface, 
                                         NULL,
                                         GENERIC_READ | GENERIC_WRITE,
                                         NULL);
...
Error:
...

요구 사항

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

추가 정보

IWDFRemoteTarget

IWDFRemoteTarget::OpenFileByName