Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[ предупреждение: 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
Битовая маска, указывающая требуемый доступ вызывающего абонента к файлу. Дополнительные сведения об этом элементе см. в параметре DesiredAccessCreateFile в пакете SDK для Windows.
[in, optional] pOpenParams
Указатель на выделенную вызывающим UMDF_IO_TARGET_OPEN_PARAMS структуру, содержащую дополнительные параметры. Этот параметр является необязательным и может быть null.
Возвращаемое значение
OpenRemoteInterface возвращает S_OK, если операция выполнена успешно. В противном случае метод может вернуть следующее значение:
Возвращаемый код | Описание |
---|---|
|
Попытка платформы выделить память завершилась ошибкой. |
Этот метод может возвращать одно из других значений, содержащихся в 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 (include Wudfddi.h) |
DLL | WUDFx.dll |