This function allocates and initializes a packet descriptor.
Header file: | Ndis.h |
Windows CE versions: | 2.0 and later |
VOID NdisAllocatePacket( OUT PNDIS_STATUS Status,
OUT PNDIS_PACKET *Packet, IN NDIS_HANDLE PoolHandle );
NDIS drivers must allocate packet descriptors from a packet pool. Protocol drivers call this function one or more times for their subsequent calls to the NdisSend function. Miniports call this function one or more times for subsequent calls to the NdisMIndicateReceivePacket function. NDIS intermediate drivers must call this function to repackage sends and receive indications in fresh packet descriptors before passing incoming transfer requests on to other NDIS drivers.
Each packet descriptor eventually has one or more buffer descriptors chained to it. This function initializes the packet descriptor at 0 and sets its buffer chain pointer to NULL. The caller must chain the buffer descriptor( s ) mapping the packet data to the packet descriptor before it is sent or indicated. Most NDIS drivers allocate buffer descriptors with the NdisAllocateBuffer function.
Drivers must use the NDIS_SET_PACKET_XXX macros to access or set up any out-of-band information associated with the packet descriptor.
A driver that calls this function runs at IRQL <=DISPATCH_LEVEL.
NdisAllocateBuffer, NdisAllocatePacketPool, NdisFreePacket, NdisMEthIndicateReceive, NdisMIndicateReceivePacket, NdisSend, NDIS_SET_PACKET_HEADER_SIZE, NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO, NDIS_SET_PACKET_STATUS, NDIS_SET_PACKET_TIME_RECEIVED, NDIS_SET_PACKET_TIME_SENT, NDIS_SET_PACKET_TIME_TO_SEND