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

Примечание NDIS 5. X является нерекомендуемым и заменен NDIS 6. x. Сведения о разработке новых драйверов NDIS см. в статье Сетевые драйверы, начиная с Windows Vista. Сведения о переносе NDIS 5. x драйверы для NDIS 6. x, см. раздел Перенос драйверов NDIS 5.x в NDIS 6.0.

NdisDeregisterProtocol освобождает ресурсы, выделенные при вызове драйвера NdisRegisterProtocol.

Синтаксис

void NdisDeregisterProtocol(
  [out] PNDIS_STATUS Status,
  [in]  NDIS_HANDLE  NdisProtocolHandle
);

Параметры

[out] Status

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

[in] NdisProtocolHandle

Указывает дескриптор, возвращаемый NdisRegisterProtocol при инициализации драйвера.

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

None

Remarks

Зарегистрированные драйверы протокола вызывают NdisDeregisterProtocol в любом из следующих случаев:

  • Драйвер уже успешно называется NdisRegisterProtocol , но он не может привязаться к базовому драйверу NDIS на компьютере.

  • Драйвер выгружается. То есть была вызвана подпрограмма Unload, настроенная в объекте драйвера во время инициализации, или была вызвана функция ProtocolUnbindAdapter для освобождения последней оставшейся привязки драйвера.

    Дополнительные сведения о подпрограмме выгрузки и других стандартных процедурах драйвера в режиме ядра см. в разделе Компоненты драйвера режима ядра.

  • Система завершает работу. Так как драйвер, который является протоколом самого высокого уровня, называется IoRegisterShutdownNotification при инициализации, вызывается его подпрограмма завершения работы.

    Дополнительные сведения см. в разделе IoRegisterShutdownNotification .

Если протокол имеет открытые привязки, его вызов NdisDeregisterProtocol приводит к тому, что NDIS вызывает функцию ProtocolUnbindAdapter протокола один раз для каждой открытой привязки. ProtocolUnbindAdapter вызывает NdisCloseAdapter для закрытия привязки.

При закрытии незавершенных открытий NdisDeregisterProtocol освобождает все фильтры, настроенные вызывающим объектом, и освобождает память NDIS, выделенную для отслеживания привязок и фильтров для драйвера протокола.

  • Целевая платформа: универсальная
  • Версия: не поддерживается для драйверов NDIS 6.0 в Windows Vista. Вместо этого используйте NdisDeregisterProtocolDriver. Поддерживается для драйверов NDIS 5.1 в Windows Vista и Windows XP.

Требования

Требование Значение
Заголовок ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL

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