#include <irpqueue.h>

Public Member Functions | |
| IrpQueue () | |
| ~IrpQueue () | |
| bool | EnqueuePacket (PIRP pIrp, void *pContext) |
| PIRP | DequeuePacket (void **ppContext) |
| void | Shutdown () |
| bool | IsShutDown () |
| int | GetPacketCount () |
| void * | operator new (unsigned size) |
Private Attributes | |
| PIRP | m_pFirstIrp |
| PIRP | m_pLastIrp |
| bool | m_bShutdown |
| bool | m_bLastPacketDequeued |
| KSemaphore | m_Semaphore |
| KSpinLock | m_QueueSpinLock |
| int | m_PacketCount |
DO NOT create any instances of this class in paged memory. Always use new() operator.
See comments in the beginning of IRP.H for use example.
| BazisLib::DDK::IrpQueue::IrpQueue | ( | ) |
| BazisLib::DDK::IrpQueue::~IrpQueue | ( | ) |
| PIRP BazisLib::DDK::IrpQueue::DequeuePacket | ( | void ** | ppContext | ) |
Dequeues a packet from the queue. If the queue is empty, waits for a new packet to be enqueued.
| bool BazisLib::DDK::IrpQueue::EnqueuePacket | ( | PIRP | pIrp, | |
| void * | pContext | |||
| ) |
Adds a new packet to the end of the queue and signals the semaphore.
| int BazisLib::DDK::IrpQueue::GetPacketCount | ( | ) | [inline] |
| bool BazisLib::DDK::IrpQueue::IsShutDown | ( | ) | [inline] |
| void* BazisLib::DDK::IrpQueue::operator new | ( | unsigned | size | ) | [inline] |
| void BazisLib::DDK::IrpQueue::Shutdown | ( | ) | [inline] |
Shuts down the IRP queue. A queue that is shut down fails to enqueue packets

bool BazisLib::DDK::IrpQueue::m_bLastPacketDequeued [private] |
bool BazisLib::DDK::IrpQueue::m_bShutdown [private] |
int BazisLib::DDK::IrpQueue::m_PacketCount [private] |
PIRP BazisLib::DDK::IrpQueue::m_pFirstIrp [private] |
PIRP BazisLib::DDK::IrpQueue::m_pLastIrp [private] |