NDIS_STATUS_INDICATION结构(ndis.h)

NDIS 和基础驱动程序使用NDIS_STATUS_INDICATION结构为过度协议驱动程序提供状态指示。

Syntax

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_STATUS_INDICATION结构的NDIS_OBJECT_HEADER结构。 设置 Header 指定要NDIS_OBJECT_TYPE_STATUS_INDICATION的结构的 Type 成员、要NDIS_STATUS_INDICATION_REVISION_1的 Revision 成员和要NDIS_SIZEOF_STATUS_INDICATION_REVISION_1的 Size 成员。

SourceHandle

状态指示的来源。 如果源是微型端口适配器,则它应该是 NDIS 传递给 MiniportInitializeEx 函数的 MiniportAdapterHandle 参数的句柄。 如果源是筛选器模块,则它应该是传递给 FilterAttach 函数的 NdisFilterHandle 参数的 NDIS 的句柄。

PortNumber

状态指示的源端口。 如果状态指示不特定于端口,请将 PortNumber 设置为零。

StatusCode

状态代码(由 NDIS 提供或从基础驱动程序传播)。 该值是NDIS_STATUS_XXX 代码。 有关 NDIS_STATUS_XXX 代码的详细信息,请参阅 状态指示

Flags

StatusBuffer 状态缓冲区中的信息类型。 微型端口驱动程序将此成员设置为零。 此成员保留为 NDIS。

DestinationHandle

一个句柄,用于标识应接收状态指示的过度配置驱动程序。 如果 为 NULL,NDIS 将指示绑定到微型端口适配器的每个协议驱动程序的状态。 如果非 NULL,则 NDIS 仅向 DestinationHandle 标识的驱动程序指示状态。 在这种情况下,驱动程序还必须设置 RequestId 成员。 有关 OID 请求的详细信息,请参阅“备注”部分。

RequestId

与状态指示关联的 OID 请求。 如果没有与状态指示关联的 OID 请求, 则 RequestIdNULL。 如果状态指示与微型端口驱动程序以返回的状态NDIS_STATUS_INDICATION_REQUIRED完成的 OID 请求相关联,微型端口驱动程序必须设置 RequestId 成员。 在这种情况下,驱动程序还必须设置 DestinationHandle 成员。

有关 OID 请求的详细信息,请参阅以下“备注”部分。

StatusBuffer

指向缓冲区的指针,该缓冲区包含依赖于 StatusCode 的值的中等特定数据。

例如,如果 StatusCode是NDIS_STATUS_LINK_STATE,则此参数指向 NDIS_LINK_STATE 结构, StatusBufferSize 为 sizeof(NDIS_LINK_STATE)。

对于某些NDIS_STATUS_XXX 值,此指针为 NULL,StatusBufferSize 设置为零。

StatusBufferSize

StatusBuffer 中状态信息缓冲区的长度(以字节为单位)。

Guid

NDIS 用来生成 WMI 通知的专用 GUID。 有关专用 GUID 的详细信息,请参阅 OID_GEN_SUPPORTED_GUIDS

NdisReserved[4]

保留为 NDIS。

注解

微型端口驱动程序通过调用 NdisMIndicateStatusEx 函数来指示状态。 筛选器驱动程序调用 NdisFIndicateStatus 函数。

某些 OID 请求使微型端口驱动程序能够提供状态指示的 OID 完成状态。 在这种情况下,微型端口驱动程序返回NDIS_STATUS_INDICATION_REQUIRED OID 请求的完成状态。 微型端口驱动程序无法返回此状态,除非特定的 OID 允许它。 若要确定是否允许此状态,请参阅 OID 参考页。

如果状态指示与微型端口驱动程序返回NDIS_STATUS_INDICATION_REQUIRED的 OID 请求相关联,则发出状态指示的驱动程序必须在NDIS_STATUS_INDICATION结构中设置 DestinationHandleRequestId 成员。

在这种情况下,驱动程序将 DestinationHandleRequestId 成员分别设置为 NDIS_OID_REQUEST 结构中 RequestHandleRequestId 成员的值。

例如,在无线网络中,OID 请求的处理可能需要很长时间才能完成。 在这种情况下,微型端口驱动程序可以立即完成 OID 请求,并在以后提供状态指示,以提供 OID 请求的最终结果。

协议驱动程序在 ProtocolStatusEx 函数处接收状态指示。 筛选器驱动程序在 FilterStatus 函数处接收状态指示。

要求

Requirement 价值
最低支持的客户端 NDIS 6.0 及更高版本中受支持。
Header 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