NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 结构 (ndis.h)

NDIS 微型端口驱动程序设置 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 结构来定义与微型端口适配器关联的注册属性。

语法

typedef struct _NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_HANDLE         MiniportAdapterContext;
  ULONG               AttributeFlags;
  UINT                CheckForHangTimeInSeconds;
  NDIS_INTERFACE_TYPE InterfaceType;
} NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, *PNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;

成员

Header

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。

微型端口驱动程序必须将 HeaderType 成员设置为 NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES。 若要指定 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 结构的版本,驱动程序必须将 HeaderRevision 成员设置为以下值之一:

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2

为 NDIS 6.30 添加了 AttributeFlags 标志。

Size 成员设置为 NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2。

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1

NDIS 6.0 的原始版本。

Size 成员设置为 NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1。

MiniportAdapterContext

微型端口驱动程序在其 MiniportInitializeEx 函数中分配的上下文区域的句柄。 微型端口驱动程序使用此上下文区域来维护微型端口适配器的状态信息。

AttributeFlags

与按位 OR 组合的标志的位掩码。 NDIS 微型端口驱动程序应设置以下一个或多个标志:

NDIS_MINIPORT_ATTRIBUTES_HARDWARE_DEVICE

设置微型端口驱动程序是否直接控制物理设备。 为物理设备分配硬件资源,例如中断、I/O 端口、内存映射 I/O 或微型端口驱动程序应从 声明的 DMA 通道 MiniportInitializeEx 函数。

NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM

如果微型端口适配器的较低级别接口是 WDM 总线驱动程序(如 USB 或 IEEE 1394),则设置 。在这种情况下,微型端口驱动程序不会分配硬件资源,例如 I/O 端口、中断、内存映射 I/O 或 DMA 通道。 相反,驱动程序通过基础总线驱动程序的 WDM 接口与设备通信。

NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER

设置调用方 NIC 是否为总线主 DMA 设备。

NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND

设置在系统转换为低功耗 (休眠) 状态之前,NDIS 是否不应调用 微型端口驱动程序的 MiniportHaltEx 函数。 依赖于硬件维护状态的驱动程序不应设置此标志。

NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK

设置微型端口驱动程序是否可以在不通知用户的情况下删除其 NIC。 NDIS 驱动程序在 接收意外删除通知 MiniportDevicePnPEventNotify 函数。

NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS

由支持面向连接的和无连接的设备的微型端口驱动程序设置,以指示设备是无连接设备。

NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO

由不提供 TAPI 服务的 CoNDIS 微型端口驱动程序设置。 设置NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO可防止 NDIS 将微型端口驱动程序绑定到 NDIS TAPI 代理驱动程序 (NDPROXY) 。 默认情况下,NDIS 将 NDPROXY 绑定到所有 CoNDIS 微型端口驱动程序。

NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT

由微型端口驱动程序设置,该驱动程序调用 NdisMNetPnPEvent 函数以激活其默认端口。 如果未设置NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT,则默认端口处于活动状态。 如果微型端口适配器的默认端口未处于活动状态,NDIS 不会绑定协议驱动程序或将筛选器模块附加到微型端口适配器。

NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND

从 NDIS 6.30 开始,如果微型端口驱动程序能够在不暂停的情况下转换为低功耗状态,则会设置此标志。

有关此标志的详细信息,请参阅备注部分。

NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK

从 NDIS 6.30 微型端口开始,除非设置了此标志,否则 NDIS 不会在 Bug 检查期间调用微型端口的 MiniportShutdownEx 处理程序。 大多数微型端口不应设置此标志。

CheckForHangTimeInSeconds

超时间隔(以秒为单位),NDIS 应调用 MiniportCheckForHangEx 函数。 如果微型端口驱动程序在 MiniportCheckForHangEx 的两次连续调用中未响应 OID 请求或发送请求,则 NDIS 可以调用微型端口驱动程序的 MiniportResetEx 函数。

NDIS 在调用 MiniportCheckForHangEx 时使用的间隔始终为 2 秒的倍数。 例如,如果指定 5 秒,则间隔大约为 4 秒。

如果此成员为 0,则默认超时间隔为 2 秒。

注意 超时间隔必须大于微型端口驱动程序的初始化时间。 有关详细信息,请参阅 微型端口适配器检查挂起和重置操作
 

InterfaceType

微型端口适配器的 I/O 总线接口类型。 这通常是微型端口适配器所连接的 I/O 总线类型。 NDIS 6.0 支持以下值:

NdisInterfaceInternal

指定特定于主机的内部接口。

NdisInterfaceIsa

指定 ISA 接口。

NdisInterfaceEisa

指定扩展的 ISA (EISA) 接口。 NDIS 6.0 及更高版本中不支持此接口类型。

NdisInterfaceMca

指不再受支持的 MCA 总线。 NDIS 6.0 及更高版本中不支持此接口类型。

NdisInterfaceTurboChannel

指定 Turbo 通道接口。

NdisInterfacePci

指定外围组件互连 (PCI) 接口。

NdisInterfacePcMcia

指定个人计算机内存卡国际协会 (电脑卡) 接口。

NdisInterfaceCBus

指定 CBus。

NdisInterfaceMPIBus

指定 MPIBus。

NdisInterfaceMPSABus

指定 MPSABus。

NdisInterfaceProcessorInternal

指定处理器内部总线。

NdisInterfaceInternalPowerBus

指定内部电源总线。

NdisInterfacePNPISABus

指定 PNPISABus。

NdisInterfacePNPBus

指定 PNPBus。

此参数与中间驱动程序无关,中间驱动程序应为此成员指定 0。

注解

微型端口驱动程序在 的 MiniportAttributes 参数中传递指向 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 结构的指针 NdisMSetMiniportAttributes 函数。 微型端口驱动程序在初始化期间从其 MiniportInitializeEx 函数调用 NdisMSetMiniportAttributes

微型端口驱动程序应尽快在 MiniportInitializeEx 中NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES设置属性。 必须设置这些属性。

NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND标志

在基础微型端口适配器转换为 D1、D2 或 D3 低功率状态之前,NDIS 向微型端口驱动程序发出OID_PNP_SET_POWER的 OID 请求。 当驱动程序处理此 OID 时,它必须准备微型端口适配器以转换为较低功率状态,并且不得等待等待等待接收数据包指示完成。

在某些情况下,在 NDIS 向微型端口驱动程序发出 OID_PNP_SET_POWER 的 OID 请求之前,NDIS 调用微型端口驱动程序的 MiniportPause 函数,如下所述:

  • 如果未设置NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND标志,则在向驱动程序发出 OID_PNP_SET_POWER 的 OID 请求之前,NDIS 会调用微型端口驱动程序的 MiniportPause 函数。 在 MiniportPause 调用的上下文中,驱动程序必须等待挂起的接收数据包指示完成。
  • 如果设置了NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND标志,则在向驱动程序发出 OID_PNP_SET_POWER 的 OID 请求之前,NDIS 不会调用微型端口驱动程序的 MiniportPause 函数。 当微型端口驱动程序处理 OID 请求时,它不得假定之前在准备微型端口适配器以转换为低功耗状态时暂停。
    注意 当支持 NDIS 6.20 或更低版本的 NDIS 的协议或筛选器驱动程序绑定或附加到微型端口适配器时,会发生此异常。 在这种情况下,无论微型端口驱动程序是否设置NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND标志,NDIS 都会调用微型端口驱动程序的 MiniportPause 函数。
     

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
标头 ndis.h (包括 Ndis.h)

另请参阅

微型端口适配器挂起检查和重置操作

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportPause

MiniportResetEx

NDIS_OBJECT_HEADER

NdisMNetPnPEvent

NdisMSetMiniportAttributes

OID_PNP_SET_POWER