NdisMSendResourcesAvailable (Compact 2013)
3/26/2014
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.
Syntax
VOID NdisMSendResourcesAvailable(
NDIS_HANDLE MiniportAdapterHandle
);
Parameters
- MiniportAdapterHandle
[in] Handle originally input to the MiniportInitialize function.
Return Value
None.
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. That miniport on return from its MiniportSendPackets or MiniportSend function should consider any send packet for which an NIC driver returns something other than NDIS_STATUS_PENDING inaccessible.
A WAN miniport cannot call this function.
Requirements
Header |
ndis.h |
Library |
ndis.dll |
See Also
Reference
NDIS 5.x Legacy Functions
MiniportInitialize
MiniportSend
MiniportSendPackets
NdisMSendComplete
NdisMWanSendComplete
NdisSend
OID_GEN_MEDIA_IN_USE
OID_GEN_MEDIA_SUPPORTED
ProtocolSendComplete