Microsoft Windows CE 3.0  

NdisMSendResourcesAvailable

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

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

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 MiniportSendPacketsfunction, and it serializes the submission of packets to each miniport's MiniportSendfunction. 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 MiniportSendPacketsfunction sets the Statusmember in the out-of-band data block for a packet to NDIS_STATUS_PENDING with NDIS_SET_PACKET_STATUS.
  • Its MiniportSendfunction returns NDIS_STATUS_PENDING.

    In either of these circumstances, the NIC driver eventually must call NdisMSendCompleteor NdisMWanSendCompleteto 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 NdisMSendCompletefor 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 NdisMSendCompletewith that packet.

    If a miniport returns any value except NDIS_STATUS_PENDING for a particular packet from MiniportSendPacketsor 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 MiniportSendPacketsor MiniportSendfunction.

    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

    NdisMSendComplete, NdisSend



     Last updated on Tuesday, July 13, 2004

    © 2004 Microsoft Corporation. All rights reserved.