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


Функция WdfDeviceInitRegisterPnpStateChangeCallback (wdfdevice.h)

[Применяется только к KMDF]

Примечание

Этот метод предназначен только для внутреннего использования майкрософт.

Метод WdfDeviceInitRegisterPnpStateChangeCallback регистрирует предоставленную драйвером функцию обратного вызова событий, которую платформа вызывает при изменении состояния конечного автомата Plug and Play устройства.

Синтаксис

NTSTATUS WdfDeviceInitRegisterPnpStateChangeCallback(
  [in] PWDFDEVICE_INIT                              DeviceInit,
  [in] WDF_DEVICE_PNP_STATE                         PnpState,
  [in] PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange,
  [in] ULONG                                        CallbackTypes
);

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT , предоставленный вызывающим.

[in] PnpState

Перечислитель WDF_DEVICE_PNP_STATE, определяющий состояние компьютера Plug and Play, для которого драйвер запрашивает уведомление.

[in] EvtDevicePnpStateChange

Предоставленный вызывающим элементом указатель на функцию обратного вызова события EvtDevicePnpStateChange драйвера.

[in] CallbackTypes

Комбинация WDF_STATE_NOTIFICATION_TYPE типизированных перечислителей ORed.

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

Если операция выполнена успешно, WdfDeviceInitRegisterPnpStateChangeCallback возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_INVALID_PARAMETER
Обнаружен недопустимый параметр.
STATUS_INSUFFICIENT_RESOURCES
Недостаточно памяти для завершения операции.

Комментарии

Если драйвер вызывает WdfDeviceInitRegisterPnpStateChangeCallback, он должен сделать это, прежде чем вызывать WdfDeviceCreate.

Дополнительные сведения о WdfDeviceInitRegisterPnpStateChangeCallback см. в разделе Конечные машины в платформе.

Примеры

В следующем примере кода регистрируется функция обратного вызова события, которая будет вызываться платформой при изменении состояния Plug and Play конечного автомата устройства.

status = WdfDeviceInitRegisterPnpStateChangeCallback(
                                                     DeviceInit,
                                                     WdfDevStatePnpEjectFailed,
                                                     MyDrvPnPStateChangeCallback,
                                                     StateNotificationAllStates
                                                     );

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки платформы).
IRQL PASSIVE_LEVEL
Правила соответствия DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

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

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE