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 메서드는 드라이버의 IRemoteInterfaceCallbackEvent 및 IRemoteInterfaceCallbackRemoval 인터페이스에 대한 포인터를 반환해야 합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[out] ppRemoteInterface
새 원격 인터페이스 개체의 IWDFRemoteInterface 인터페이스에 대한 포인터를 수신하는 드라이버 제공 위치에 대한 포인터입니다.
반환 값
CreateRemoteInterface 는 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드는 다음 값을 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
프레임워크의 메모리 할당 시도가 실패했습니다. |
이 메서드는 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 |