OID_QOS_PARAMETERS

The Data Center Bridging (DCB) component (Msdcb.sys) issues an object identifier (OID) method request of OID_QOS_PARAMETERS to configure the local NDIS Quality of Service (QoS) parameters on a network adapter.

The InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_QOS_PARAMETERS structure.

Note This OID method request is mandatory for miniport drivers that support NDIS QoS for the IEEE 802.1 Data Center Bridging (DCB) interface.

Remarks

Miniport drivers obtain the local NDIS QoS parameters through an OID method request of OID_QOS_PARAMETERS. These parameters define how the network adapter prioritizes transmit, or egress, packets. For more information about these parameters, see Overview of NDIS QoS Parameters.

Note Only the DCB component can issue an OID method request of OID_QOS_PARAMETERS. An overlying protocol or filter driver must not issue this OID. For more information on the DCB component, see NDIS QoS Architecture for Data Center Bridging.

The DCB component issues an OID_QOS_PARAMETERS request under the following conditions:

  • The system administrator installs or uninstalls the Microsoft DCB server feature.

    For more information about the DCB server feature, see System-Provided DCB Components.

  • The system administrator enables or disables the DCB server feature while the feature is still installed.

  • The system administrator changes any of the DCB server feature parameters.

  • The operating system starts or restarts while the DCB server feature is installed.

When the miniport driver handles the OID method request of OID_QOS_PARAMETERS, it must follow these guidelines:

  • The miniport driver copies the data within the NDIS_QOS_PARAMETERS structure to its cache of local NDIS QoS parameters. The driver then resolves its operational NDIS QoS parameters based on its cache of local NDIS QoS parameters and its cache of NDIS QoS parameters that it received from a remote peer.

    For more information about how the miniport driver resolves its operational parameters, see Resolving Operational NDIS QoS Parameters.

  • The miniport driver must not modify any data that is contained within the NDIS_QOS_PARAMETERS structure. The driver must complete the OID method request and return the original data within the NDIS_QOS_PARAMETERS structure.

  • The NDIS_QOS_PARAMETERS_WILLING flag specifies whether the miniport driver enables or disables the local Data Center Bridging Exchange (DCBX) Willing state. The driver handles this flag in the following way:

    • If this flag is set, the miniport driver must enable the local DCBX Willing state. This allows the driver to be remotely configured with QoS settings. In this case, the driver resolves its operational QoS parameters based on the remote QoS parameters. The miniport driver can also resolve its operational QoS parameters based on any proprietary QoS settings that are defined by the independent hardware vendor (IHV).

    • If this flag is not set, the miniport driver must disable the local DCBX Willing state. This allows the driver to resolve its operational QoS parameters from its local QoS parameters instead of remote QoS parameters. The miniport driver must also disable or override any local QoS parameter for which the related NDIS_QOS_PARAMETERS_Xxx_CONFIGURED flag is not set.

      For example, the miniport driver can override an unconfigured local QoS parameter with its proprietary settings for the QoS parameter that is defined by the IHV. If there are no proprietary settings for local QoS parameters that are not specified with an NDIS_QOS_PARAMETERS_Xxx_CONFIGURED flag, the driver must disable the use of these QoS parameters on the network adapter.

      Note The driver can also override configured local QoS parameters if they compromise the QoS parameters used by protocols or technologies that are enabled on the network adapter. For example, the driver can override the local QoS parameters if the network adapter is enabled for remote boot through the Fibre Channel over Ethernet (FCoE) protocol.

    For more information about the local DCBX Willing state, see Managing the Local DCBX Willing State.

For more information on how the miniport driver overrides local QoS parameters, see Managing NDIS QoS Parameters.

Note Overriding the local QoS parameters should not cause the miniport driver to fail the OID method request of OID_QOS_PARAMETERS.

For more information on how the miniport driver manages the local QoS parameters, see Setting Local NDIS QoS Parameters.

Return Status Codes

The miniport driver returns one of the following status codes.

Status Code Description

NDIS_STATUS_SUCCESS

The OID request completed successfully.

NDIS_STATUS_PENDING

The OID request is pending completion. When the miniport driver calls NdisMOidRequestComplete, NDIS will pass the final status code and results to the OID request completion handler of the caller after the request is completed.

NDIS_STATUS_NOT_SUPPORTED

The miniport driver does not support the NDIS QoS interface.

NDIS_STATUS_INVALID_PARAMETER

One or more members of the NDIS_QOS_PARAMETERS structure contain incorrect values.

NDIS_STATUS_INVALID_LENGTH

The length of the information buffer is less than sizeof(NDIS_QOS_PARAMETERS). NDIS sets the DATA.QUERY_INFORMATION.BytesNeeded member in the NDIS_OID_REQUEST structure to the minimum buffer size that is required.

NDIS_STATUS_FAILURE

The request failed for other reasons.

Requirements

Version

Supported in NDIS 6.30 and later.

Header

Ntddndis.h (include Ndis.h)

See also


NdisMOidRequestComplete

NDIS_OID_REQUEST

NDIS_QOS_CAPABILITIES

NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE

NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE