Функция NdisRegisterDeviceEx (ndis.h)

Функция NdisRegisterDeviceEx создает объект устройства, основанный на указанных атрибутах.

Синтаксис

NDIS_STATUS NdisRegisterDeviceEx(
  [in]  NDIS_HANDLE                    NdisHandle,
  [in]  PNDIS_DEVICE_OBJECT_ATTRIBUTES DeviceObjectAttributes,
  [out] PDEVICE_OBJECT                 *pDeviceObject,
  [out] PNDIS_HANDLE                   NdisDeviceHandle
);

Параметры

[in] NdisHandle

Дескриптор драйвера мини-порта или дескриптор драйвера фильтра, полученный вызывающим путем вызова Функция NdisMRegisterMiniportDriver илиФункция NdisFRegisterFilterDriver соответственно.

[in] DeviceObjectAttributes

Указатель на NDIS_DEVICE_OBJECT_ATTRIBUTES структуры, содержащей атрибуты для нового устройства.

[out] pDeviceObject

Указатель, указывающий на только что созданную структуру DEVICE_OBJECT , если вызов выполнен успешно. Если вызов завершается сбоем, pDeviceObject имеет значение NULL.

[out] NdisDeviceHandle

Указатель на переменную, предоставленную вызывающим объектом, в которой эта функция, если она завершается успешно, возвращает дескриптор объекту устройства. Этот дескриптор является обязательным параметром функции NdisDeregisterDeviceEx , которую драйвер вызывает впоследствии.

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

NdisRegisterDeviceEx возвращает одно из следующих значений состояния:

Код возврата Описание
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx успешно зарегистрировал устройство.
NDIS_STATUS_NOT_SUPPORTED
Вызывающий объект не является драйвером NDIS.
NDIS_STATUS_XXX или NTSTATUS_XXX
Попытка драйвера зарегистрировать устройство завершилась сбоем. Обычно такое состояние ошибки распространяется из функции NdisXxx или подпрограммы поддержки режима ядра.

Комментарии

Драйверы мини-портов и драйверы фильтров могут вызывать NdisRegisterDeviceEx для регистрации виртуального устройства.

Примечание Драйверы NDIS не должны изменять элемент DeviceExtensionструктуры DEVICE_OBJECT , созданной NdisRegisterDeviceEx .
 
Если драйверу NDIS требуется пространство для контекстных сведений в объекте устройства, драйвер может передать ненулевое значение для члена ExtensionSize в NDIS_DEVICE_OBJECT_ATTRIBUTES структуру в параметре DeviceObjectAttributes . В этом случае NDIS выделяет расширение для драйвера, и драйвер может вызватьФункция NdisGetDeviceReservedExtension для получения указателя на расширение.

Драйвер должен впоследствии вызывать функцию NdisDeregisterDeviceEx , когда устройство больше не требуется. Если NdisRegisterDeviceEx выделило расширение, NdisDeregisterDeviceEx освобождает расширение.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI Irql_Miscellaneous_Function(ndis)

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

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver