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


структура NDIS_STATUS_INDICATION (ndis.h)

NDIS и базовые драйверы используют структуру NDIS_STATUS_INDICATION для предоставления сведений о состоянии для вышележащих драйверов протокола.

Синтаксис

typedef struct _NDIS_STATUS_INDICATION {
  NDIS_OBJECT_HEADER Header;
  NDIS_HANDLE        SourceHandle;
  NDIS_PORT_NUMBER   PortNumber;
  NDIS_STATUS        StatusCode;
  ULONG              Flags;
  NDIS_HANDLE        DestinationHandle;
  PVOID              RequestId;
  PVOID              StatusBuffer;
  ULONG              StatusBufferSize;
  GUID               Guid;
  PVOID              NdisReserved[4];
} NDIS_STATUS_INDICATION, *PNDIS_STATUS_INDICATION;

Члены

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_STATUS_INDICATION. Задайте для элемента Type структуры, указанной в заголовке , значение NDIS_OBJECT_TYPE_STATUS_INDICATION, для элемента Revision — NDIS_STATUS_INDICATION_REVISION_1, а для элемента Size — значение NDIS_SIZEOF_STATUS_INDICATION_REVISION_1.

SourceHandle

Источник указания состояния. Если источником является адаптер мини-порта, это должен быть дескриптор, переданный NDIS в параметр MiniportAdapterHandle функции MiniportInitializeEx . Если источником является модуль фильтра, это должен быть дескриптор, переданный NDIS параметру NdisFilterHandle функции FilterAttach .

PortNumber

Исходный порт указания состояния. Если индикатор состояния не связан с портом, задайте значение PortNumber равным нулю.

StatusCode

Код состояния, предоставляемый NDIS или распространяемый из базовых драйверов. Значением является код NDIS_STATUS_XXX . Дополнительные сведения о кодах NDIS_STATUS_XX см . в разделе Индикаторы состояния.

Flags

Тип сведений в буфере состояния в StatusBuffer . Драйверы мини-порта устанавливают для этого элемента нулевое значение. Этот элемент зарезервирован для NDIS.

DestinationHandle

Дескриптор, который идентифицирует драйвер, который должен получить индикатор состояния. Если значение NULL, NDIS указывает состояние каждого драйвера протокола, привязанного к адаптеру мини-порта. Если значение не равно NULL, NDIS указывает состояние только для драйвера, который идентифицирует DestinationHandle . В этом случае драйвер также должен задать элемент RequestId . Дополнительные сведения о запросах OID см. в разделе Примечания.

RequestId

Запрос OID, связанный с указанием состояния. Если запрос OID не связан с указанием состояния, RequestId имеет значение NULL. Драйверы мини-порта должны задать элемент RequestId, если индикатор состояния связан с запросом OID, который драйвер мини-порта завершил с возвращенным состоянием NDIS_STATUS_INDICATION_REQUIRED. В этом случае драйвер также должен задать элемент DestinationHandle .

Дополнительные сведения о запросах OID см. в следующем разделе Примечания.

StatusBuffer

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

Например, если StatusCode имеет значение NDIS_STATUS_LINK_STATE, этот параметр указывает на структуру NDIS_LINK_STATE , а Параметр StatusBufferSize имеет значение sizeof(NDIS_LINK_STATE).

Для некоторых значений NDIS_STATUS_XXX этот указатель имеет значение NULL , а Параметр StatusBufferSize имеет значение 0.

StatusBufferSize

Длина (в байтах) буфера сведений о состоянии в StatusBuffer .

Guid

Частный GUID, который NDIS использует для создания уведомления WMI. Дополнительные сведения о частных идентификаторах GUID см. в разделе OID_GEN_SUPPORTED_GUIDS.

NdisReserved[4]

Зарезервировано для NDIS.

Комментарии

Драйверы мини-порта указывают состояние путем вызова функции NdisMIndicateStatusEx . Драйверы фильтров вызывают функцию NdisFIndicateStatus .

Некоторые запросы OID позволяют драйверу минипорта предоставлять состояние завершения OID с указанием состояния. В этом случае драйвер мини-порта возвращает NDIS_STATUS_INDICATION_REQUIRED для состояния завершения запроса OID. Драйвер мини-порта не может вернуть это состояние, если это не разрешено определенным идентификатором OID. Чтобы определить, разрешено ли это состояние, см. страницу справочника по OID.

Если индикатор состояния связан с запросом OID, в котором драйвер мини-порта возвращал NDIS_STATUS_INDICATION_REQUIRED, драйвер, создающий индикатор состояния, должен задать элементы DestinationHandle и RequestId в структуре NDIS_STATUS_INDICATION.

В этом случае драйвер задает для членов DestinationHandle и RequestId значения элементов RequestHandle и RequestId в структуре NDIS_OID_REQUEST соответственно.

Например, в беспроводной сети обработка запроса OID может занять очень много времени. В этом случае драйвер мини-порта может немедленно завершить запрос OID и позже указать состояние, чтобы предоставить окончательный результат для запроса OID.

Драйверы протокола получают указания о состоянии в функции ProtocolStatusEx . Драйверы фильтров получают указания о состоянии в функции FilterStatus .

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Верхняя часть ndis.h (включая Ndis.h)

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

FilterAttach

FilterStatus

MiniportInitializeEx

NDIS_LINK_STATE

NDIS_OBJECT_HEADER

NDIS_OID_REQUEST

NDIS_STATUS_LINK_STATE

NDIS_TAPI_EVENT

NdisFindicateStatus

NdisMIndicateStatusEx

NdisOpenAdapterEx

OID_GEN_SUPPORTED_GUIDS

ProtocolStatusEx