Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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) |