NDIS_PORT_CHARACTERISTICS structure (ntddndis.h)

The NDIS_PORT_CHARACTERISTICS structure specifies the characteristics of an NDIS port. For more information about NDIS ports, see NDIS Ports.

Syntax

typedef struct _NDIS_PORT_CHARACTERISTICS {
  NDIS_OBJECT_HEADER            Header;
  NDIS_PORT_NUMBER              PortNumber;
  ULONG                         Flags;
  NDIS_PORT_TYPE                Type;
  NDIS_MEDIA_CONNECT_STATE      MediaConnectState;
  ULONG64                       XmitLinkSpeed;
  ULONG64                       RcvLinkSpeed;
  NET_IF_DIRECTION_TYPE         Direction;
  NDIS_PORT_CONTROL_STATE       SendControlState;
  NDIS_PORT_CONTROL_STATE       RcvControlState;
  NDIS_PORT_AUTHORIZATION_STATE SendAuthorizationState;
  NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState;
} NDIS_PORT_CHARACTERISTICS, *PNDIS_PORT_CHARACTERISTICS;

Members

Header

The NDIS_OBJECT_HEADER structure for the NDIS_PORT_CHARACTERISTICS structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_DEFAULT, the Revision member to NDIS_PORT_CHARACTERISTICS_REVISION_1, and the Size member to NDIS_SIZEOF_PORT_CHARACTERISTICS_REVISION_1.

PortNumber

The number of the NDIS port that is associated with this NDIS_PORT_CHARACTERISTICS structure. The PortNumber value is an NDIS_PORT_NUMBER value, which has a ULONG data type and is valid from zero through 0xffffff, where zero is reserved for the default port.

Flags

A bitwise OR combination of the port characteristics flags, or zero if no flags are set. There is currently one flag.

If the NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS flag is set, NDIS ignores authentication state settings and uses the default authentication state instead. A miniport driver can use this flag to request that NDIS use the default authentication state settings for the ports that it allocates and activates. If the miniport driver controls the default port, when the miniport driver activates the default port, the driver can set NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS to activate the default port with the default authentication state settings.

Type

The type of NDIS port. For more information, see Types of NDIS Ports. This type can be one of the following values:

NdisPortTypeUndefined

The default port type.

NdisPortTypeBridge

Reserved for system use.

NdisPortTypeRasConnection

A Remote Access Service (RAS) connection.

NdisPortType8021xSupplicant

A remote wireless station that is associated with an access point on this host computer.

NdisPortTypeNdisImPlatform

Reserved for system use.

Note  This value is supported only in NDIS 6.30 and later.
 

MediaConnectState

The media connection state of the port. This state is the same information that the OID_GEN_MEDIA_CONNECT_STATUS_EX OID returns.

XmitLinkSpeed

The transmit link speed of the port in bits per second. A value of -1 in this member indicates that the transmit link speed is unknown.

RcvLinkSpeed

The receive link speed of the port, in bits per second. A value of -1 in this member indicates that the receive link speed is unknown.

Direction

A NET_IF_DIRECTION_TYPE NDIS network interface direction type.

SendControlState

The control state of the port for send operations. This member must contain one of the following values:

NdisPortControlStateUnknown

The port's control state for send operations is unknown.

NdisPortControlStateControlled

The port is in a controlled state for send operations. That is, the port requires authorization.

NdisPortControlStateUncontrolled

The port is in an uncontrolled state for send operations. That is, the port does not require authorization.

RcvControlState

The control state of the port for receive operations. This member must contain one of the following values:

NdisPortControlStateUnknown

The port's control state for receive operations is unknown.

NdisPortControlStateControlled

The port is in a controlled state for receive operations (that is, the port requires authorization), and the value in the SendAuthorizationState member determines the authentication state.

NdisPortControlStateUncontrolled

The port is in an uncontrolled state for receive operations. Therefore, authentication does not apply to this port.

SendAuthorizationState

The authorization state of the port for send operations. Ignore this member if the SendControlState member is set to NdisPortControlStateUncontrolled.

SendAuthorizationState must contain one of the following values:

NdisPortAuthorizationUnknown

The port's authorization state for send operations is unknown.

NdisPortAuthorized

The port is authorized for send operations.

NdisPortUnauthorized

The port is not authorized for send operations.

NdisPortReauthorizing

The port is re-authorizing for send operations.

RcvAuthorizationState

The authorization state of the port for receive operations. Ignore this member if the RcvControlState member is set to NdisPortControlStateUncontrolled.

RcvAuthorizationState must contain one of the following values:

NdisPortAuthorizationUnknown

The port's authorization state for receive operations is unknown.

NdisPortAuthorized

The port is authorized for receive operations.

NdisPortUnauthorized

The port is not authorized for receive operations.

NdisPortReauthorizing

The port is re-authorizing for receive operations.

Remarks

The NDIS_PORT_CHARACTERISTICS structure specifies the characteristics of an NDIS port. This structure appears in a list of port characteristics that are provided in the NDIS_PORT_ARRAY structure that is used with the OID_GEN_ENUMERATE_PORTS OID.

To allocate an NDIS port, a driver initializes an NDIS_PORT_CHARACTERISTICS structure and passes it to the NdisMAllocatePort function. When NdisMAllocatePort successfully returns, NDIS sets the PortNumber member of NDIS_PORT_CHARACTERISTICS to the port number that NDIS assigned to the port.

NDIS uses a linked list of ports in port activation Plug and Play (PnP) events. NDIS uses the NDIS_PORT structure to create a linked list of ports, and each NDIS_PORT structure contains an NDIS_PORT_CHARACTERISTICS structure.

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.0 and later.
Header ntddndis.h (include Ndis.h)

See also

NDIS Ports

NDIS_OBJECT_HEADER

NDIS_PORT

NDIS_PORT_ARRAY

NET_IF_DIRECTION_TYPE

NdisMAllocatePort

OID_GEN_ENUMERATE_PORTS

OID_GEN_MEDIA_CONNECT_STATUS_EX

Types of NDIS Ports