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_STATUS_INDICATION结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_STATUS_INDICATION,将 Revision 成员设置为 NDIS_STATUS_INDICATION_REVISION_1,并将 Size 成员设置为 NDIS_SIZEOF_STATUS_INDICATION_REVISION_1。

SourceHandle

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

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 中的值。

例如,如果NDIS_STATUS_LINK_STATE StatusCode则此参数指向NDIS_LINK_STATE结构,而 StatusBufferSize 的大小为 (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 完成状态。 在这种情况下,微型端口驱动程序返回 OID 请求完成状态NDIS_STATUS_INDICATION_REQUIRED。 微型端口驱动程序无法返回此状态,除非特定的 OID 允许。 若要确定是否允许此状态,请参阅 OID 参考页。

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

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

例如,在无线网络中,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