Return to site

Ndis Miniport Driver Windows 10

broken image


An NDIS driver initializes an NDISMINIPORTDRIVERCHARACTERISTICS structure to define its miniport driver characteristics, including the entry points for its MiniportXxx functions. Download SMSC IrCC NDIS Miniport Device Driver 5.1.3600.3.zip for Windows to driver.

-->

An NDIS driver initializes an NDIS_MINIPORT_DRIVER_CHARACTERISTICS structure to define its miniportdriver characteristics, including the entry points for itsMiniportXxx functions.

Syntax

Members

Header

TheNDIS_OBJECT_HEADER structure for theNDIS_MINIPORT_DRIVER_CHARACTERISTICS structure. Set theType member of the structure thatHeader specifies to NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS.

To indicate the version of the NDIS_MINIPORT_DRIVER_CHARACTERISTICS structure, set theRevision member to one of the following values:

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3

Added the SynchronousOidRequestHandler member for NDIS 6.80.

Set theSize member to NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2

Added the DirectOidRequestHandler, and CancelDirectOidRequestHandler members for NDIS 6.1.

Set theSize member to NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1

Original version for NDIS 6.0.

Set theSize member to NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1.

MajorNdisVersion

The major version of the NDIS library the driver is using. The current value is 0x06.

MinorNdisVersion

The minor NDIS version. The following are the available minor version value settings.

ValueMeaning
0
NDIS 6
20
NDIS 6.20
30
NDIS 6.30
40
NDIS 6.40
50
NDIS 6.50
51
NDIS 6.51
60
NDIS 6.60
70
NDIS 6.70
80
NDIS 6.80
81
NDIS 6.81
82
NDIS 6.82
83
NDIS 6.83

MajorDriverVersion

Reserved for the major version number of the driver. Miniport drivers can specify any value thatthey require.

MinorDriverVersion

Reserved for the minor version number of the driver. Miniport drivers can specify any value thatthey require.

Flags

A bitmask that can be set to zero or any of the following flags, combined with bitwise OR:

NDIS_INTERMEDIATE_DRIVER

Set if the caller is an NDIS intermediate driver.

NDIS_WDM_DRIVER

Set if the caller is an NDIS-WDM miniport driver.

SetOptionsHandler

The entry point for the caller'sMiniportSetOptions function.

Required for Co-NDIS. Suggested for Ethernet miniport drivers that support RSS using MSI-C over PCI.

InitializeHandlerEx

Required. The entry point for theMiniportInitializeEx function.

HaltHandlerEx

Required. The entry point for theMiniportHaltEx function.

UnloadHandler

Required. The entry point for theMiniportDriverUnload function.

PauseHandler

Required. The entry point for theMiniportPause function.

RestartHandler

Required. The entry point for theMiniportRestart function.

OidRequestHandler

The entry point for theMiniportOidRequest function. Required for all connection-less miniport drivers, including all Ethernet, WLAN, and IM drivers. Optional for some CoNDIS miniport drivers.

SendNetBufferListsHandler

Required. The entry point for theMiniportSendNetBufferLists function.

ReturnNetBufferListsHandler

Required. The entry point for theMiniportReturnNetBufferLists function.

CancelSendHandler

Required. The entry point for theMiniportCancelSend function.

CheckForHangHandlerEx

Optional. The entry point for theMiniportCheckForHangEx function.

MiniportCheckForHangEx is not required for intermediate drivers or virtual miniports because they are not physical devices that can hang, so they must set this entrypoint to NULL.

MiniportCheckForHangEx is forbidden on any AOAC device due to the impact on battery life, so miniport drivers for these devices must set this entry point to NULL.

MiniportCheckForHangEx is discouraged for miniport drivers intended to be installed on non-AOAC, battery-powered devices due to the impact on battery life, so they should set this entry point to NULL.

MiniportCheckForHangEx is permitted but not required for miniport drivers that are intended to be installed in line-powered (mains-powered) devices. For drivers targeting NDIS 6.30 and later, consider using NdisMResetMiniport instead.

ResetHandlerEx

Optional (required if you provide CheckForHangHandlerEx). The entry point for theMiniportResetEx function.MiniportResetEx is not required for intermediate drivers, so they should set this entry point toNULL.

DevicePnPEventNotifyHandler

Required. The entry point for theMiniportDevicePnPEventNotify function.

ShutdownHandlerEx

Required. The entry point for theMiniportShutdownEx function.

CancelOidRequestHandler

Required. The entry point for theMiniportCancelOidRequest function.

DirectOidRequestHandler

The entry point for theMiniportDirectOidRequest function. This is an optional entry point. Set this member to NULL ifthe miniport driver does not handle direct OID requests.

Optional for Ethernet; however, if one is provided, then both must be provided.

Required for WLAN and Ethernet miniports that implement RDMA or IPSec offload.

CancelDirectOidRequestHandler

The entry point for theMiniportCancelDirectOidRequest function. This is an optional entry point. Set this member to NULLif the miniport driver does not handle direct OID requests.

Optional for Ethernet; however, if one is provided, then both must be provided.

Required for WLAN and Ethernet miniports that implement RDMA or IPSec offload.

SynchronousOidRequestHandler

The entry point for theMiniportSynchronousOidRequest function. This is an optional entry point. Set this member to NULL ifthe miniport driver does not handle Synchronous OID requests.

Required for WLAN and Ethernet miniports that implement RSSv2.

Remarks

An NDIS driver passes a pointer to its NDIS_MINIPORT_DRIVER_CHARACTERISTICS structure in theMiniportDriverCharacteristics parameter of theNdisMRegisterMiniportDriver function. A miniport driver callsNdisMRegisterMiniportDriver from itsDriverEntry routine (see alsoDriverEntry of NDISMiniport Drivers).

Requirements

Minimum supported clientSupported in NDIS 6.0 and later.
Headerndis.h (include Ndis.h)

See also

MiniportCancelDirectOidRequest MiniportDevicePnPEventNotify MiniportReturnNetBufferLists-->

This topic introduces Network Driver Interface Specification (NDIS) 6.70 and describes its major design additions. NDIS 6.70 is included in Windows 10, version 1703.

NDIS 6.70 is a minor version update to NDIS 6.60 for miniport, protocol, filter, and intermediate drivers. For more information about porting NDIS 6.x drivers to NDIS 6.70, see Porting NDIS 6.x drivers to NDIS 6.70.

Feature updates

NetAdapterCx

Ndis

Alongside NDIS 6.70, Windows 10, version 1703 includes a major new feature for NIC drivers called the Network Adapter WDF Class Extension, a.k.a. NetAdapterCx. NetAdapterCx is preview only in Windows 10, version 1703. The NetAdapterCx model enables NIC driver developers to harness the full functionality and simplified driver model of WDF, meaning NIC drivers are easier to write.

Other feature updates

NDIS forms the core foundation for the network driver platform on Windows. For a list of other network driver features that were updated at the same time as NDIS 6.70, see the Windows 10, version 1703 section for Networking on What's new in driver development.

Feature deprecations

The following network driver features have been deprecated along with the release of NDIS 6.70:

Implementing an NDIS 6.70 driver

NIC drivers

For more information about implementing a NIC driver with the NetAdapterCx, see NetAdapterCx.

Miniport, protocol, filter, and intermediate drivers

An NDIS 6.70 driver must follow the requirements that are defined in Implementing an NDIS 6.30 driver.

In addition, an NDIS 6.70 driver must be compliant with the following requirements:

  • An NDIS 6.70 driver must report the correct NDIS version when it registers with NDIS.

    You must update the major and minor NDIS version number in the NDIS_Xxx_DRIVER_CHARACTERISTICS structure to support NDIS 6.70. The MajorNdisVersion member must contain 6 and the MinorNdisVersion member must contain 70. This requirement applies to miniport, protocol and filter drivers. You must also update the version information for the compiler (see Compiling an NDIS 6.70 driver).

Compiling an NDIS 6.70 driver

NIC drivers

For more information about compiling a NIC driver with the NetAdapterCx, see Porting NDIS miniport drivers to NetAdapterCx (Compilation settings).

Miniport, protocol, and filter drivers

The WDK for Windows 10, version 1703 supports header versioning. Header versioning makes sure that NDIS 6.70 drivers use the appropriate NDIS 6.70 data structures at compile time.

Add the following compiler settings to the Visual Studio project for your driver:

  • For a miniport driver, add NDIS670_MINIPORT=1.
  • For a filter or protocol driver, add NDIS670=1.

For information on building a driver with the Windows 10, version 1703 release of the WDK, see Building a Driver.

Using NDIS 6.70 driver data structures

NIC drivers

For more information about NetAdapterCx data structures, see NetAdapterCx.

Ndis Miniport Driver

Miniport, protocol, filter, and intermediate drivers

Ndis Miniport Driver

New data structures

Ndis Miniport Driver Windows 10 Amd

The following data structures are new in NDIS 6.70.





broken image