Метод IWDFDevice2::CreateRemoteInterface (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]
Метод CreateRemoteInterface создает объект удаленного интерфейса, представляющий интерфейс устройства.
Синтаксис
HRESULT CreateRemoteInterface(
[in] IWDFRemoteInterfaceInitialize *pRemoteInterfaceInit,
[in, optional] IUnknown *pCallbackInterface,
[out] IWDFRemoteInterface **ppRemoteInterface
);
Параметры
[in] pRemoteInterfaceInit
Указатель на интерфейс IWDFRemoteInterfaceInitialize , полученный функцией обратного вызова IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .
[in, optional] pCallbackInterface
Указатель на дополнительный интерфейс обратного вызова, предоставляемый драйвером. Метод IUnknown::QueryInterface этого интерфейса должен возвращать указатель на интерфейсы IRemoteInterfaceCallbackEvent и IRemoteInterfaceCallbackRemoval драйвера, если драйвер поддерживает эти интерфейсы. Этот параметр является необязательным и может иметь значение NULL.
[out] ppRemoteInterface
Указатель на указанное драйвером расположение, которое получает указатель на интерфейс IWDFRemoteInterface нового объекта удаленного интерфейса.
Возвращаемое значение
CreateRemoteInterface возвращает S_OK, если операция выполнена успешно. В противном случае метод может вернуть следующее значение:
Код возврата | Описание |
---|---|
|
Попытка платформы выделить память завершилась сбоем. |
Этот метод может возвращать одно из других значений, содержащихся в Winerror.h.
Комментарии
Если драйвер вызывает CreateRemoteInterface, он должен сделать это из функции обратного вызова IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival .
Дополнительные сведения о CreateRemoteInterface и использовании интерфейсов устройств см. в статье Использование интерфейсов устройств в драйверах на основе UMDF.
Примеры
В следующем примере кода показана функция обратного вызова 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 |