функция обратного вызова MINIPORT_DEVICE_PNP_EVENT_NOTIFY (ndis.h)
NDIS вызывает функцию MiniportDevicePnPEventNotify драйвера минипорта, чтобы уведомить драйвер о событиях Plug and Play (PnP).
Синтаксис
MINIPORT_DEVICE_PNP_EVENT_NOTIFY MiniportDevicePnpEventNotify;
void MiniportDevicePnpEventNotify(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}
Параметры
[in] MiniportAdapterContext
Дескриптор контекстной области, выделенной драйвером мини-порта в функции MiniportInitializeEx . Драйвер мини-порта использует эту контекстную область для хранения сведений о состоянии адаптера мини-порта.
[in] NetDevicePnPEvent
Указатель на структуру NET_DEVICE_PNP_EVENT, описывающую событие Plug and Play устройства.
Возвращаемое значение
None
Remarks
Драйвер указывает точку входа MiniportDevicePnPEventNotify при вызовеФункция NdisMRegisterMiniportDriver.
NDIS вызывает функцию MiniportDevicePnPEventNotify драйвера с элементом DevicePnPEvent параметра NetDevicePnPEvent , установленным на NdisDevicePnPEventPowerProfileChanged после одного из следующих событий:
- Инициализация драйвера завершена.
- Драйвер получил уведомление OID_PNP_SET_POWER , указывающее состояние включения ( NdisDeviceStateD0).
Когда драйвер получает уведомление о неожиданном удалении (элемент DevicePnPEvent параметра NetDevicePnPEvent — NdisDevicePnPEventSurpriseRemoved), он должен:
- Обратите внимание на то, что устройство было удалено.
- Отмените все ожидающие IRP, отправленные базовому водителю шины.
NDIS вызывает MiniportDevicePnPEventNotify в IRQL = PASSIVE_LEVEL.
Примеры
Чтобы определить функцию MiniportDevicePnPEventNotify , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию MiniportDevicePnPEventNotify с именем MyDevicePnPEventNotify, используйте тип MINIPORT_DEVICE_PNP_EVENT_NOTIFY , как показано в этом примере кода:
MINIPORT_DEVICE_PNP_EVENT_NOTIFY MyDevicePnPEventNotify;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyDevicePnPEventNotify(
NDIS_HANDLE MiniportAdapterContext,
PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}
Тип функции MINIPORT_DEVICE_PNP_EVENT_NOTIFY определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции MINIPORT_DEVICE_PNP_EVENT_NOTIFY в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье О поведении функции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | NdisOidComplete |