共用方式為


NdisDprAllocatePacket function

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

NdisDprAllocatePacket allocates and initializes a packet descriptor when the caller is running at IRQL = DISPATCH_LEVEL.

Syntax

VOID NdisDprAllocatePacket(
  _Out_ PNDIS_STATUS Status,
  _Out_ PNDIS_PACKET *Packet,
  _In_  NDIS_HANDLE  PoolHandle
);

Parameters

  • Status [out]
    Pointer to a caller-supplied variable in which this function returns the final status of the request, which can be one of the following:

    • NDIS_STATUS_SUCCESS
      The caller can use the packet descriptor returned at Packet.

    • NDIS_STATUS_RESOURCES
      The free list for the packet pool currently has no available entries. The variable at Packet is set to NULL.

  • Packet [out]
    Pointer to a caller-supplied variable in which this function returns a pointer to the allocated packet descriptor.

  • PoolHandle [in]
    Specifies the handle returned by a preceding call to NdisAllocatePacketPool.

Return value

None

Remarks

NdisDprAllocatePacket runs slightly faster than NdisAllocatePacket because NDIS can acquire the spin lock it uses to synchronize access to the packet pool without having to raise IRQL.

The caller of NdisDprAllocatePacket must eventually free the allocated packet descriptor by calling NdisDprFreePacket or NdisFreePacket.

A caller of NdisDprAllocatePacket must be running at IRQL = DISPATCH_LEVEL. Otherwise, the driver should call NdisAllocatePacket.

Requirements

Target platform

Universal

Version

Not supported for NDIS 6.0 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP.

Header

Ndis.h (include Ndis.h)

Library

Ndis.lib

IRQL

DISPATCH_LEVEL (See Remarks section)

See also

NdisAllocatePacket

NdisAllocatePacketPool

NdisDprAllocatePacketNonInterlocked

NdisDprFreePacket

NdisFreePacket

NdisReleaseSpinLock

 

 

Send comments about this topic to Microsoft