Skip to main content

NDIS 5.1 Support and Windows

Updated: January 15, 2003


NOTE: NDIS 5.0 is deprecated and will be removed in future versions of Windows. Refer to NDIS 6.x.

This pages summarizes network-specific updates that are new in the Microsoft Windows XP and Windows Server 2003 operating systems.

  • Plug and Play event notification for miniport driversThrough a new miniport function, MiniportPnPEventNotify, miniports are notified of changes in the system power profile (battery or AC power) and when a miniport's network adapter is removed without prior notification through the user interface (surprise removal).

  • 64-bit statistical countersAll 100 Mbps and faster network adapters must support 64-bit counters for certain statistical OIDs. For information, see "General Objects and Connection-Oriented Objects" in the
    Windows DDK.

  • Canceling send packetsProtocol drivers and intermediate drivers can set packet cancellation IDs in packets and request the cancellation of the pending transmission of marked packets. For information, see NdisGeneratePartialCancelId, NDIS_SET_PACKET_CANCEL_ID, NDIS_GET_PACKET_CANCEL_ID, NdisCancelSendPackets, and MiniportCancelSendPackets in the Windows DDK.

  • Registering a MiniportShutdown functionMiniport and intermediate drivers must register a MiniportShutdown function when calling NdisMRegisterMiniport or NdisIMRegisterLayeredMiniport, respectively. Such drivers should no longer call NdisMRegisterAdapterShutdownHandler to register a MiniportShutdown function.

  • Machine name notification for IEEE 802.11 wireless adapters If a miniport driver, in response to a query of OID_GEN_PHYSICAL_MEDIUM, specifies NdisPhysicalMediumWirelessLan, NDIS sets OID_GEN_MACHINE_NAME, which is a new object for Windows XP.

  • Scatter-gather DMA support for serialized miniport drivers. Serialized miniport drivers can now call
    NdisMInitializeScatterGatherDma.

  • Packet stacking Each NDIS packet now contains two NDIS_PACKET_STACK structures. After calling
    NdisIMGetCurrentPacketStack to obtain a pointer to an NDIS_PACKET_STACK structure, an intermediate driver can store and retrieve driver-defined information at locations referenced by the pointers in this structure. This capability allows the intermediate driver to reuse a packet - that is, pass the packet to the adjacent driver without having to allocate an additional packet into which the intermediate driver copies the original packet.

  • Notification of Plug and Play events by intermediate driversAn intermediate driver calls
    NdisIMNotifyPnPEvent in the context of its ProtocolPnPEvent function to propagate notification of a Plug and Play or Power Management event to the overlying driver.

  • New miniport driver attributesCallers of
    NdisMSetAttributesEx can set two new AttributeFlags: NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK and NDIS_ATTRIBUTE_NOT_CO_NDIS.

  • Miscellaneous new NDIS functionsFor information, see NdisGetPoolFromPacket, NdisQueryPendingIoCount, NdisGetFirstBufferFromPacketSafe, and NdisGetSharedDataAlignment in the
    Windows DDK.

  • Claiming resourcesMiniport drivers must now use
    NdisMQueryAdapterResources to claim system resources.

  • Miniport drivers must have default valuesMiniport drivers must have a default value for every key that they read from the registry.

  • Safe functionsNDIS 5.1 miniport drivers must call the safe version of functions (
    NdisBufferVirtualAddressSafe, NdisGetFirstBufferFromPacketSafe, and NdisQueryBufferSafe) instead of their non-safe versions.

  • Remote NDIS supportRemote NDIS is a bus-independent class specification for Ethernet (802.3) network devices on dynamic PnP buses such as USB, IEEE 1394, Bluetooth, and InfiniBand. Remote NDIS defines a bus-independent message protocol between a host PC and a Remote NDIS device over abstract control and data channels.

  • Obsolete functionsThe following functions are not supported in Windows XP and later versions of the operating system:
    NdisMPciAssignResources and all NdisImmediateXXX functions.

  • NDIS 3.0 protocol drivers are not supportedOnly NDIS 4.0 and 5.0 protocol drivers are supported. All protocol drivers must supply
    ProtocolBindAdapter and ProtocolUnbindAdapter functions.

Rate: