Поделиться через


Метод IWDFRemoteTarget::OpenRemoteInterface (wudfddi.h)

[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.]

Метод OpenRemoteInterface открывает интерфейс устройства , чтобы драйвер смог отправлять ему запросы ввода-вывода.

Синтаксис

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

Параметры

[in] pRemoteInterface

Указатель на интерфейс IWDFRemoteInterface , полученный драйвером при предыдущем вызове IWDFDevice2::CreateRemoteInterface.

[in, optional] pszRelativeFileName

Необязательный указатель на предоставленную вызывающей строкой, завершающуюся null, которую платформа добавляет к символьному имени ссылки интерфейса устройства.

[in] DesiredAccess

Битовая маска, указывающая требуемый доступ вызывающего абонента к файлу. Дополнительные сведения об этом элементе см. в параметре DesiredAccessобъекта CreateFile в Windows SDK.

[in, optional] pOpenParams

Указатель на структуру, выделенную вызывающим объектом UMDF_IO_TARGET_OPEN_PARAMS , содержащую дополнительные параметры. Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

OpenRemoteInterface возвращает S_OK, если операция выполнена успешно. В противном случае метод может вернуть следующее значение:

Код возврата Описание
E_OUTOFMEMORY
Попытка платформы выделить память завершилась сбоем.
 

Этот метод может возвращать одно из других значений, содержащихся в Winerror.h.

Средство проверки платформы сообщает об ошибке, если платформе не удается открыть файл.

Комментарии

После того как функция обратного вызова IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival получает уведомление о том, что интерфейс устройства доступен, и после вызова драйвера IWDFDevice2::CreateRemoteInterface для создания объекта удаленного интерфейса драйвер может вызвать OpenRemoteInterface , чтобы отправлять запросы ввода-вывода в интерфейс устройства.

Интерфейс устройства должен быть доступен учетной записи, которая загрузила драйвер на основе UMDF, который обычно является учетной записью локальной службы. Однако если драйвер использует олицетворение при вызове OpenRemoteInterface, интерфейс устройства должен быть доступен для олицетворенной учетной записи.

Дополнительные сведения о OpenRemoteInterface и использовании интерфейсов устройств в драйверах на основе UMDF см. в разделе Использование интерфейсов устройств в драйверах на основе UMDF.

Примеры

В следующем примере кода показано, как функция обратного вызова IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival может создать удаленный интерфейс и удаленные целевые объекты для интерфейса устройства, а затем открыть интерфейс для операций ввода-вывода.

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