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 drivers
Through 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 counters
All 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 packets
Protocol 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 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.
-
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 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
NdisMSetAttributesEx can set two new AttributeFlags: NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK and NDIS_ATTRIBUTE_NOT_CO_NDIS.
-
Miscellaneous new NDIS functions
For information, see NdisGetPoolFromPacket, NdisQueryPendingIoCount, NdisGetFirstBufferFromPacketSafe, and NdisGetSharedDataAlignment in the
Windows DDK.
-
Claiming resources
Miniport drivers must now use
NdisMQueryAdapterResources to claim 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 non-safe versions.
-
Remote NDIS support
Remote 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 functions
The 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 supported
Only NDIS 4.0 and 5.0 protocol drivers are supported. All protocol drivers must supply
ProtocolBindAdapter and ProtocolUnbindAdapter functions.