New for Network Drivers

The following network-specific updates are new in Windows XP:

  • Plug and Play (PnP) event notification for miniport drivers.

    Through a new miniport driver function, MiniportPnPEventNotify, miniport drivers are notified of changes in the system power source (battery or AC power) and when a miniport driver's NIC is removed without prior notification to the driver (a surprise removal).

  • 64-bit statistical counters.

    All miniport drivers for 1 Gbps and faster NICs must support 64-bit counters for certain statistical object identifiers (OIDs). In addition, Microsoft recommends that all miniport drivers for 100 Mbps and faster NICs support 64-bit counters for such OIDs. For more information about these OIDs, see General Objects and Connection-Oriented Objects.

  • Canceling send packets.

    Protocol drivers and intermediate drivers can set packet cancellation identifiers in packets and request the cancellation of the pending transmission of marked packets. For more information, see NdisGeneratePartialCancelId, NDIS_SET_PACKET_CANCEL_ID, NDIS_GET_PACKET_CANCEL_ID, NdisCancelSendPackets, and MiniportCancelSendPackets.

  • Registering a MiniportShutdown function.

    Miniport 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.

  • OID_GEN_MACHINE_NAME

    This OID, which is optional, indicates the system name. NDIS sets OID_GEN_MACHINE_NAME only once after a miniport driver completes initialization. NDIS does not dynamically notify miniport drivers of a change in the system name. After changing the system name, a user must reboot the system so that NDIS notifies miniport drivers of the new system name.

  • NdisMInitializeScatterGatherDma is supported for serialized miniport drivers.

    Serialized miniport drivers can now call NdisMInitializeScatterGatherDma instead of allocating map registers.

  • Packet stacking for intermediate drivers.

    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, to 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 drivers.

    An 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 attributes.

    Callers of NdisMSetAttributesExcan set three new attribute flags:

    NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK

    NDIS_ATTRIBUTE_SAFE_BUFFER_APIS

    NDIS_ATTRIBUTE_NOT_CO_NDIS

  • Miscellaneous new NDIS functions.

    For information, see NdisCopyFromPacketToPacketSafe, NdisGetPoolFromPacket, NdisQueryPendingIOCount, NdisGetFirstBufferFromPacketSafe, and NdisGetSharedDataAlignment.

  • Identifying allocated resources.

    Miniport drivers must now use NdisMQueryAdapterResources to identify allocated system resources.

  • Miniport drivers must have default values.

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

  • Safe functions.

    NDIS 5.1 miniport drivers must call the safe version of functions (NdisBufferVirtualAddressSafe, NdisGetFirstBufferFromPacketSafe, and NdisQueryBufferSafe) instead of their nonsafe versions.

  • Obsolete functions.

    The following functions are not supported in Windows XP and later versions of the operating system. NDIS 5.1 drivers should never call these functions. These functions are supported only for legacy NDIS 5.0 and 4.0 drivers:

    NdisGetCacheFillSize, NdisImmediateReadPciSlotInformation, NdisImmediateReadPortUchar, NdisImmediateReadPortUlong, NdisImmediateReadPortUshort, NdisImmediateReadImmediateSharedMemory, NdisImmediateWritePciSlotInformation, NdisImmediateWritePortUchar, NdisImmediateWritePortUlong, NdisImmediateWritePortUshort, NdisImmediateWriteSharedMemory, NdisMPciAssignResources, NdisReadEisaSlotInformation, NdisReadEisaSlotInformationEx

    Windows XP and later versions do not support NdisQueryMapRegisterCount for any NDIS drivers.

  • Remote NDIS.

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

  • NDIS 3.0 protocol drivers are not supported.

    Only NDIS 4.0 and 5.0 protocol drivers are supported. All protocol drivers must supply ProtocolBindAdapter and ProtocolUnbindAdapter functions.

  • Intermediate drivers must be deserialized.

  • The EISA bus is no longer supported.

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft. All rights reserved.