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


Метод IWDFDevice2::RegisterRemoteInterfaceNotification (wudfddi.h)

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

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

Синтаксис

HRESULT RegisterRemoteInterfaceNotification(
  [in] LPCGUID pDeviceInterfaceGuid,
  [in] BOOL    IncludeExistingInterfaces
);

Параметры

[in] pDeviceInterfaceGuid

Указатель на GUID, который идентифицирует интерфейс устройства.

[in] IncludeExistingInterfaces

Значение типа Boolean. Если драйвер задает это значение TRUE, платформа уведомляет драйвер, если указанный интерфейс устройства становится доступным после вызова драйвера RegisterRemoteInterfaceNotification, а также уведомляет драйвер, был ли интерфейс устройства доступен до драйвера RegisterRemoteInterfaceNotification.

Если драйвер задает для этого значения значение FALSE, платформа уведомляет драйвер только в том случае, если интерфейс устройства становится доступным после вызова драйвера RegisterRemoteInterfaceNotification.

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

RegisterRemoteInterfaceNotification возвращает S_OK успешно выполненной операции. В противном случае этот метод возвращает другое значение, которое содержит Winerror.h.

Комментарии

Драйвер может вызывать RegisterRemoteInterfaceNotification , только если интерфейс обратного вызова, который драйвер ранее передал в IWDFDriver::CreateDevice , поддерживает интерфейс IPnpCallbackRemoteInterfaceNotification .

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

Примеры

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

HRESULT
CMyDriver::OnDeviceAdd(
    __in IWDFDriver  *FxDriver,
    __in IWDFDeviceInitialize  *FxDeviceInit
    )
{
    CComPtr<IWDFDevice> fxDevice;
    HRESULT hr;

    //
    // Create a device object and obtain the IWDFDevice interface.
    //
    hr = FxDriver->CreateDevice(FxDeviceInit,
                                MyDeviceIUnknown,
                                &fxDevice);
    if (FAILED(hr)) goto Error;

    //
    // Obtain the IWDFDevice2 interface from IWDFDevice.
    //
    CComPtr<IWDFDevice2> fxDevice2;
    if (FAILED(hr)) goto Error;
    hr = fxDevice->QueryInterface(IID_PPV_ARGS(&fxDevice2));
    if (S_OK != hr) goto Error;
    //
    // Register for notification when a device interface
    // arrives.
    //
    hr = fxDevice2->RegisterRemoteInterfaceNotification(&GUID_DEVINTERFACE_TOASTER,
                                                        true);
...
}

Требования

Требование Значение
Дата окончания поддержки Недоступно в UMDF 2.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Минимальная версия UMDF 1,9
Верхняя часть wudfddi.h (включая Wudfddi.h)
DLL WUDFx.dll

См. также раздел

IPnpCallbackRemoteInterfaceNotification::OnRemoteInterfaceArrival

IWDFDevice2