This function registers a network adapter or intermediate driver's Miniport_* entry points and name with the NDIS library when the driver initializes.

NDIS_STATUS NdisMRegisterMiniport(
IN NDIS_HANDLE NdisWrapperHandle, 
IN UINT CharacteristicsLength );


  • NdisWrapperHandle
    Handle returned by the NdisMInitializeWrapper function.

  • MiniportCharacteristics
    Pointer to an NDIS_MINIPORT_CHARACTERISTICS structure set up by the caller.

    The driver should initialize this structure with 0s before setting up any its members.

  • CharacteristicsLength
    Specifies the length, in bytes, of the caller-supplied characteristics buffer. This parameter must be sizeof(NDIS40_MINIPORT_CHARACTERISTICS).

    The driver includes the build instruction NDIS40_MINIPORT, as appropriate, in its sources; if the driver writer uses the -DNDIS40_MINIPORT compiler switch, this parameter is set when the driver is built.

Return Values

NDIS_STATUS_SUCCESS indicates success. One of the following status values indicates failure:

    The CharacteristicsLength is too small for the MajorNdisVersion specified in the buffer at MiniportCharacteristics.
    The MajorNdisVersion or MinorNdisVersion specified in the characteristics structure is invalid.
    A shortage of resources, possibly memory, prevented the NDIS library from registering the caller.
    This is a default error status, returned when none of the preceding errors caused the registration to fail. For example, if the NDIS library cannot load the driver's image and lock it into system memory, it returns this error.


An network adapter driver calls this function from its DriverEntry function after DriverEntry calls the NdisMInitializeWrapper function.

Every network adapter driver that exports only MiniportXXX functions must set up a characteristics structure and call this function. This structure is copied in the request to the NDIS library's internal storage. Thus, once it has registered, a miniport driver cannot change its handler functions.

The NDIS library currently does not call MiniportReconfigure functions, so such a function in an existing miniport driver does nothing unless the miniport makes internal calls to its MiniportReconfigure function from MiniportInitialize.

After the driver has called this function, it should be prepared to be called back at the MiniportInitialize entry point specified in the characteristics structure.

NDIS intermediate drivers, which export both MiniportXXX and ProtocolXXX functions, usually call the NdisIMRegisterLayeredMiniport function, instead of this function. Intermediate drivers that export only a set of MiniportXXX functions usually call this function.


Runs on Versions Defined in Include Link to
Windows CE OS 2.0 and later Ndis.h   Ndislib.lib

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

DriverEntry, MiniportInitialize, MiniportReconfigure, NdisZeroMemory, NdisIMRegisterLayeredMiniport, NdisMInitializeWrapper

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.