Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
typedef VOID (*PACKET_STARTER)( PVOID Context, PIRP Irp );
typedef struct _PACKET_QUEUE {
LIST_ENTRY ListHead;
PIRP CurrentPacket;
BOOLEAN Active;
BOOLEAN InStartNext;
KSPIN_LOCK Lock;
PVOID Context;
PACKET_STARTER Starter;
KEVENT InactiveEvent;
} PACKET_QUEUE, *PPACKET_QUEUE;
VOID InitializePacketQueue( PPACKET_QUEUE PacketQueue, PVOID Context, PACKET_STARTER StarterRoutine );
VOID QueuePacket( PPACKET_QUEUE PacketQueue, PIRP Irp, BOOLEAN InsertAtFront );
VOID StartNextPacket( PPACKET_QUEUE PacketQueue );
VOID PausePacketProcessing( PPACKET_QUEUE PacketQueue, BOOLEAN WaitForInactive );
VOID ActivatePacketProcessing( PPACKET_QUEUE PacketQueue );
#define FLUSH_ALL_IRPS (0xff)
VOID FlushQueuedPackets( PPACKET_QUEUE PacketQueue, UCHAR MajorFunction );
|