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


Индикаторы состояния модуля фильтра

Драйверы фильтров могут предоставлять функцию FilterStatus , которую NDIS вызывает, когда базовый драйвер сообщает о состоянии. Драйверы фильтров также могут инициировать указания состояния.

На следующем рисунке показано отфильтрованное указание состояния.

Схема, иллюстрирующая отфильтрованное состояние.

NDIS вызывает функцию FilterStatus драйвера фильтра после того, как базовый драйвер вызывает функцию индикации состояния (NdisMIndicateStatusEx или NdisFIndicateStatus). Дополнительные сведения о том, как указать состояние драйвера мини-порта, см. в разделе Индикаторы состояния адаптера.

Драйвер фильтра вызывает NdisFIndicateStatus в своей функции FilterStatus , чтобы передать отфильтрованное состояние в чрезмерное состояние. Драйвер фильтра может отфильтровать признаки состояния (не вызывая NdisFIndicateStatus) или изменить указанное состояние перед вызовом NdisFIndicateStatus.

Чтобы определить состояние, драйверы фильтров вызывают NdisFIndicateStatus без предварительного вызова FilterStatus.

В этом случае драйвер фильтра должен задать для элемента SourceHandle дескриптор, переданный NDIS параметру NdisFilterHandle функции FilterAttach . Если указание состояния связано с запросом OID, драйвер фильтра может задать элементы DestinationHandle и RequestId , чтобы NDIS предоставлял указание состояния для определенной привязки протокола.

После того, как драйвер фильтра вызывает NdisFIndicateStatus, NDIS вызывает функцию состояния (ProtocolStatusEx или FilterStatus) следующего драйвера, назначающего превышение.