mirror-ac/driver/queue.h

38 lines
486 B
C
Raw Normal View History

2023-08-20 16:12:04 +02:00
#ifndef QUEUE_H
#define QUEUE_H
#include <ntifs.h>
#define QUEUE_POOL_TAG 'qqqq'
typedef struct _QUEUE_NODE
{
struct _QUEUE_NODE* next;
PKSPIN_LOCK lock;
PVOID data;
}QUEUE_NODE, *PQUEUE_NODE;
typedef struct QUEUE_HEAD
{
struct _QUEUE_NODE* start;
struct _QUEUE_NODE* end;
PKSPIN_LOCK lock;
2023-08-20 17:04:53 +02:00
INT entries;
2023-08-20 16:12:04 +02:00
}QUEUE_HEAD, *PQUEUE_HEAD;
2023-08-20 17:04:53 +02:00
PQUEUE_HEAD QueueCreate();
2023-08-20 16:12:04 +02:00
VOID QueuePush(
_In_ PQUEUE_HEAD Head,
_In_ PVOID Data
);
PVOID QueuePop(
_In_ PQUEUE_HEAD Head
);
#endif