#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] |