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


структура 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;

Members

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_STATUS_INDICATION. Задайте элемент типаструктуры, указывающей NDIS_OBJECT_TYPE_STATUS_INDICATION, элемент редакции 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_XXXX. Дополнительные сведения о кодах NDIS_STATUS_XXX см . в разделе "Признаки состояния".

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 .

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

Для некоторых значений NDIS_STATUS_XXXX этот указатель имеет значение NULL и StatusBufferSize равно нулю.

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 и более поздних версиях.
Header ndis.h (include 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