NDIS_MINIPORT_CHARACTERISTICS (Windows CE 5.0)

Send Feedback

NdisIMRegisterLayeredMiniport uses this structure when it registers a driver's miniport entry points and name with the NDIS library. An NDIS intermediate driver should initialize this structure with zeros before setting up any of its members.

The structure at NDIS_MINIPORT_CHARACTERISTICS is defined as follows.

typedef struct _NDIS_MINIPORT_CHARACTERISTICS {  UCHARMajorNdisVersion;UCHARMinorNdisVersion;  UINTReserved;  W_CHECK_FOR_HANG_HANDLERCheckForHangHandler;W_DISABLE_INTERRUPT_HANDLERDisableInterruptHandler;W_ENABLE_INTERRUPT_HANDLEREnableInterruptHandler;W_HALT_HANDLERHaltHandler;W_HANDLE_INTERRUPT_HANDLERHandleInterruptHandler;  W_INITIALIZE_HANDLERInitializeHandler;W_ISR_HANDLERISRHandler;W_QUERY_INFORMATION_HANDLERQueryInformationHandler;W_RECONFIGURE_HANDLERReconfigureHandler;W_RESET_HANDLERResetHandler;W_SEND_HANDLERSendHandler;W_SET_INFORMATION_HANDLERSetInformationHandler;W_TRANSFER_DATA_HANDLERTransferDataHandler;W_RETURN_PACKET_HANDLERReturnPacketHandler;W_SEND_PACKETS_HANDLERSendPacketsHandler;W_ALLOCATE_COMPLETE_HANDLERAllocateCompleteHandler;W_CANCEL_SEND_PACKETS_HANDLERCancelSendPacketsHandler;W_MINIPORT_SHUTDOWN_HANDLERAdapterShutdownHandler;} NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS;

Members

  • MajorNdisVersion
    Specifies the major version of the NDIS library the driver is using. The current value is 0x05, although the NDIS library continues to support existing miniports developed for the Network Driver Interface Specification (NDIS) version4.0.

  • MinorNdisVersion
    Specifies the minor version of the NDIS library the driver is using. The current value is 0x00, although NDIS continues to support existing drivers.

  • Reserved
    This member is reserved for system use.

  • CheckForHangHandler
    Specifies the entry point of the caller's MiniportCheckForHang function, if any, or NULL.

  • DisableInterruptHandler
    Specifies NULL.

  • EnableInterruptHandler
    Specifies NULL.

  • HaltHandler
    Specifies the entry point of the caller's MiniportHalt function.

  • HandleInterruptHandler
    Specifies NULL.

  • InitializeHandler
    Specifies the entry point of the caller's MiniportInitialize function.

  • ISRHandler
    Specifies NULL.

  • QueryInformationHandler
    Specifies the entry point of the caller's MiniportQueryInformation function.

  • ReconfigureHandler
    Specifies NULL.

  • ResetHandler
    Specifies the entry point of the caller's MiniportReset function.

  • SendHandler
    Specifies the entry point of the caller's MiniportSend function, MiniportWanSend function, or NULL if the caller supplies a MiniportSendPackets function.

    If the driver supports multipacket sends or media-specific information, it sets the SendPacketsHandler member instead and sets this member to NULL.

  • SetInformationHandler
    Specifies the entry point of the caller's MiniportSetInformation function.

  • TransferDataHandler
    Specifies the entry point of the caller's MiniportTransferData function, if any, or NULL. This miniport function is required unless the caller is the driver of a WAN NIC or the caller supports multipacket receives and, therefore, supplies the entry point of its MiniportReturnPacket function at ReturnPacketHandler.

  • ReturnPacketHandler
    Specifies the entry point of the caller's MiniportReturnPacket function, if any, or NULL.

  • SendPacketsHandler
    Specifies the entry point of the caller's MiniportSendPackets function, if any, or NULL.

  • AllocateCompleteHandler
    Specifies NULL.

  • CancelSendPacketsHandler
    Specifies the entry point of the caller's MiniportCancelSendPackets function, if any, or NULL. Intermediate drivers that queue send packets for more than one second should register a MiniportCancelSendPackets function.

  • AdapterShutdownHandler
    Specifies the entry point of the caller's MiniportShutdown function, if any, or NULL. NDIS 5.1 intermediate drivers must register a MiniportShutdown function. NDIS 5.1 intermediate drivers should register a MiniportShutdown function by calling NdisIMRegisterLayeredMiniport — not by calling NdisMRegisterAdapterShutdownHandler.

Remarks

Any NDIS intermediate driver that exports both MiniportXXX and ProtocolXXX functions sets up a characteristics structure and calls NdisIMRegisterLayeredMiniport from its DriverEntry function after DriverEntry calls NdisMInitializeWrapper. This structure is copied in the NdisIMRegisterLayeredMiniport request to the NDIS library's internal storage. Thus, once it has registered, such a driver cannot change its handler functions.

After such an NDIS intermediate driver has called NdisIMRegisterLayeredMiniport successfully, it must call NdisRegisterProtocol to register its ProtocolXXX functions with the NDIS library. Such a driver usually has both ProtocolBindAdapter and ProtocolUnbindAdapter functions. Its ProtocolBindAdapter function will be called next when the underlying NIC driver has initialized successfully. ProtocolBindAdapter then can establish a binding to that NIC driver with NdisOpenAdapter.

An NDIS intermediate driver should have a MiniportSendPackets function if an underlying NIC driver might support multipacket sends or consume media-specific information, such as packet priorities, sent down in a packet array from a higher-level protocol. An NDIS intermediate driver should have a MiniportReturnPacket function if an underlying NIC driver might support multipacket receive indications or indicate packet arrays containing media-specific information. The NDIS library handles packet arrays transferred between an underlying NIC driver and higher-level protocol that support only single-packet transfers on behalf of such an intermediate driver.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Ndis.h.

See Also

DriverEntry | MiniportCancelSendPackets | MiniportCheckForHang | MiniportHalt | MiniportInitialize | MiniportQueryInformation | MiniportReset | MiniportReturnPacket | MiniportReturnPacket | MiniportSend | MiniportSendPackets | MiniportSetInformation | MiniportShutdown | MiniportTransferData | MiniportWanSend | NdisIMInitializeDeviceInstance | NdisIMRegisterLayeredMiniport | NdisMInitializeWrapper | NdisMRegisterAdapterShutdownHandler | NdisOpenAdapter | NdisRegisterProtocol | ProtocolBindAdapter | ProtocolUnbindAdapter

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.