NdisMSendResourcesAvailable
This function notifies NDIS that a miniport has sufficient internal resources to accept another send request, even though one or more outstanding send packets are pending within the miniport.
VOID NdisMSendResourcesAvailable(
IN NDIS_HANDLE MiniportAdapterHandle );
Parameters
- MiniportAdapterHandle
Handle originally input to the MiniportInitialize function.
Remarks
The NDIS library queues send requests for miniports so that each NIC driver can deal with one device transmit operation at a time, although a miniport can transmit several packets per operation, depending on the capabilities of its NIC. NDIS serializes the submission of incoming packet arrays to each miniport's MiniportSendPackets function, and it serializes the submission of packets to each miniport's MiniportSend function. NDIS queues incoming send requests in first-in, first-out (FIFO) order.
Any miniport retains ownership of such a send packet in one of the following ways:
- Its MiniportSendPackets function sets the Status member in the out-of-band data block for a packet to NDIS_STATUS_PENDING with NDIS_SET_PACKET_STATUS.
- Its MiniportSend function returns NDIS_STATUS_PENDING.
In either of these circumstances, the NIC driver eventually must call NdisMSendComplete or NdisMWanSendComplete to indicate that it has released ownership of the packet and that the driver has sufficient resources available to accept the next transmit request.
However, before a miniport calls NdisMSendComplete for a pending packet, it can call this function if the driver and its NIC are capable of accepting another send request immediately, provided NDIS has one in its queue to submit to that driver. Such a call allows the driver of a high-capacity NIC to optimize transmissions over the network by sending more data at a time.
This function can be called only between the return of NDIS_STATUS_PENDING for a specified packet and the miniport's call to NdisMSendComplete with that packet.
If a miniport returns any value except NDIS_STATUS_PENDING for a particular packet from MiniportSendPackets or from MiniportSend, it should call neither this function nor NdisMSendComplete. Any send packet for which an NIC driver returns something other than NDIS_STATUS_PENDING should be considered inaccessible by that miniport on return from its MiniportSendPackets or MiniportSend function.
A WAN miniport cannot call this function.
A driver that calls this function runs at IRQL DISPATCH_LEVEL.
Requirements
Runs on | Versions | Defined in | Include | Link to |
---|---|---|---|---|
Windows CE OS | 2.0 and later | Ndis.h |
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
Last updated on Tuesday, July 13, 2004
© 1992-2000 Microsoft Corporation. All rights reserved.