---
title: IOUserNetworkPacketBufferPool
framework: networkingdriverkit
role: symbol
role_heading: Class
path: networkingdriverkit/iousernetworkpacketbufferpool
---

# IOUserNetworkPacketBufferPool

An object that manages the storage space for packets coming into and out of your driver.

## Declaration

```occ
class IOUserNetworkPacketBufferPool;
```

## Overview

Overview Create an IOUserNetworkPacketBufferPool during the initial setup of your driver and use it to store the packets that your driver transmits or receives. Every driver must have a packet buffer pool large enough to hold all of the packets in its transmit and receive queues. You allocate this pool early in the Start method of your IOUserNetworkEthernet service, and you deallocate that pool only after your service stops.

## Topics

### Creating a Buffer Pool

- [Create](networkingdriverkit/iousernetworkpacketbufferpool/create.md)
- [init](networkingdriverkit/iousernetworkpacketbufferpool/init.md)
- [free](networkingdriverkit/iousernetworkpacketbufferpool/free.md)

### Getting Pool Information

- [GetBufferCount](networkingdriverkit/iousernetworkpacketbufferpool/getbuffercount.md)
- [GetPacketCount](networkingdriverkit/iousernetworkpacketbufferpool/getpacketcount.md)

### Deallocating Packets

- [DeallocatePacket](networkingdriverkit/iousernetworkpacketbufferpool/deallocatepacket-3i02n.md)
- [DeallocatePackets](networkingdriverkit/iousernetworkpacketbufferpool/deallocatepackets-186ya.md)

### Getting the Memory Block

- [CopyMemoryDescriptor](networkingdriverkit/iousernetworkpacketbufferpool/copymemorydescriptor.md)

### Instance Methods

- [allocatePacket](networkingdriverkit/iousernetworkpacketbufferpool/allocatepacket.md)
- [deallocatePacket](networkingdriverkit/iousernetworkpacketbufferpool/deallocatepacket-42aob.md)
- [deallocatePackets](networkingdriverkit/iousernetworkpacketbufferpool/deallocatepackets-58i5.md)
- [getPoolOwnerDevice](networkingdriverkit/iousernetworkpacketbufferpool/getpoolownerdevice.md)
- [initWithName](networkingdriverkit/iousernetworkpacketbufferpool/initwithname.md)
- [newPacket](networkingdriverkit/iousernetworkpacketbufferpool/newpacket.md)
- [release](networkingdriverkit/iousernetworkpacketbufferpool/release.md)

### Type Methods

- [CreateWithOptions](networkingdriverkit/iousernetworkpacketbufferpool/createwithoptions.md)
- [withName](networkingdriverkit/iousernetworkpacketbufferpool/withname.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)

## See Also

### Packet Management

- [IOUserNetworkPacket](networkingdriverkit/iousernetworkpacket.md)
- [IOUserNetworkPacketDirection](networkingdriverkit/iousernetworkpacketdirection.md)
