As a set request, NDIS and overlying drivers use the OID_NDK_SET_STATE OID to set the state of the miniport adapter's NDK functionality.

NDIS 6.30 and later miniport drivers that provide NDK services must support this OID. Otherwise, this OID is optional.


NDIS issues this OID with the InformationBuffer member of the NDIS_OID_REQUEST structure pointing to a BOOLEAN and InformationBufferLength member equal to sizeof(BOOLEAN).

  • If the BOOLEAN value is TRUE and the *NetworkDirect keyword value is nonzero, the miniport adapter's NDK functionality must be enabled.

    The miniport driver can read the *NetworkDirect keyword value by doing the following:

    1. Call NdisOpenConfigurationEx with the NDIS handle that the NdisMRegisterMiniportDriver function returned when the miniport driver was initialized. For more information about calling NdisOpenConfigurationEx, see Reading the Registry in an NDIS 6.0 Miniport Driver.

    2. Call NdisReadConfiguration, passing:

      • "*NetworkDirect" for the Keyword parameter

      • NdisParameterInteger for the ParameterType parameter

  • If the BOOLEAN value is FALSE, the NDK functionality of the miniport adapter must be disabled.

To enable or disable its NDK functionality, the miniport driver's MiniportOidRequest callback function should follow the steps in Enabling and Disabling NDK Functionality.

Note An NDK-capable miniport driver must never call NdisMNetPnPEvent from the context of its MiniportOidRequest function, because doing so could cause a deadlock. Instead, it should call NdisMNetPnPEvent from some other context or queue a work item.

An NDK-capable miniport driver's MiniportOidRequest function must return STATUS_SUCCESS for an OID_NDK_SET_STATE OID request unless a failure occurs. The driver must not return NDIS_STATUS_PENDING.


Minimum supported client

None supported

Minimum supported server

Windows Server 2012


Supported in NDIS 6.30 and later.


Ntddndis.h (include Ndis.h)

See also