Метод 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