---
title: IOUserNetworkPacketQueue
framework: networkingdriverkit
role: symbol
role_heading: Class
path: networkingdriverkit/iousernetworkpacketqueue
---

# IOUserNetworkPacketQueue

The base class for the queues that manage the packets moving to and from your device.

## Declaration

```occ
class IOUserNetworkPacketQueue;
```

## Overview

Overview This class provides the common functionality for the submission and completion queues you use to manage network packets. You do not create instances of this class directly. Instead, you instantiate the following concrete subclasses: IOUserNetworkRxSubmissionQueue IOUserNetworkRxCompletionQueue IOUserNetworkTxSubmissionQueue IOUserNetworkTxCompletionQueue Submission queues contain the packets that your driver dequeues and processes. After you process the dequeued packets, you place them on the matching completion queue to let the system know that you are finished with them. The system eventually recycles the completed packets back to the corresponding submission queue so that the cycle may begin again.

## Topics

### Configuring the Packet Queue

- [init](networkingdriverkit/iousernetworkpacketqueue/init.md)
- [free](networkingdriverkit/iousernetworkpacketqueue/free.md)

### Enabling the Packet Queue

- [SetEnable](networkingdriverkit/iousernetworkpacketqueue/setenable-76sm5.md)

### Queueing and Dequeueing Packets

- [EnqueuePacket](networkingdriverkit/iousernetworkpacketqueue/enqueuepacket.md)
- [EnqueuePackets](networkingdriverkit/iousernetworkpacketqueue/enqueuepackets-qzx.md)
- [DequeuePacket](networkingdriverkit/iousernetworkpacketqueue/dequeuepacket.md)
- [DequeuePackets](networkingdriverkit/iousernetworkpacketqueue/dequeuepackets.md)

### Configuring the Queue Attributes

- [SetPacketBufferPool](networkingdriverkit/iousernetworkpacketqueue/setpacketbufferpool.md)
- [SetPacketDirection](networkingdriverkit/iousernetworkpacketqueue/setpacketdirection.md)

### Managing the Data Queue

- [CopyDataQueue](networkingdriverkit/iousernetworkpacketqueue/copydataqueue.md)
- [SetDataQueue](networkingdriverkit/iousernetworkpacketqueue/setdataqueue.md)

### Instance Methods

- [enqueuePackets](networkingdriverkit/iousernetworkpacketqueue/enqueuepackets-13ln6.md)
- [requestDequeue](networkingdriverkit/iousernetworkpacketqueue/requestdequeue.md)
- [requestEnqueue](networkingdriverkit/iousernetworkpacketqueue/requestenqueue.md)
- [setEnable](networkingdriverkit/iousernetworkpacketqueue/setenable-8eikm.md)
- [setPacketPoller](networkingdriverkit/iousernetworkpacketqueue/setpacketpoller.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)

### Inherited By

- [IOUserNetworkRxCompletionQueue](networkingdriverkit/iousernetworkrxcompletionqueue.md)
- [IOUserNetworkRxSubmissionQueue](networkingdriverkit/iousernetworkrxsubmissionqueue.md)
- [IOUserNetworkTxCompletionQueue](networkingdriverkit/iousernetworktxcompletionqueue.md)
- [IOUserNetworkTxSubmissionQueue](networkingdriverkit/iousernetworktxsubmissionqueue.md)

## See Also

### Packet Queues

- [IOUserNetworkRxSubmissionQueue](networkingdriverkit/iousernetworkrxsubmissionqueue.md)
- [IOUserNetworkRxCompletionQueue](networkingdriverkit/iousernetworkrxcompletionqueue.md)
- [IOUserNetworkTxSubmissionQueue](networkingdriverkit/iousernetworktxsubmissionqueue.md)
- [IOUserNetworkTxCompletionQueue](networkingdriverkit/iousernetworktxcompletionqueue.md)
