KEVENT MemoryAvailableEvent;
+ //
+ // Worker Pool Queues
+ //
+
+ ERESOURCE QueueLock;
+
+ struct _AFS_WORK_ITEM *QueueHead;
+
+ struct _AFS_WORK_ITEM *QueueTail;
+
+ KEVENT WorkerQueueHasItems;
+
+ LONG QueueItemCount;
+
+ ERESOURCE IOQueueLock;
+
+ struct _AFS_WORK_ITEM *IOQueueHead;
+
+ struct _AFS_WORK_ITEM *IOQueueTail;
+
+ KEVENT IOWorkerQueueHasItems;
+
+ LONG IOQueueItemCount;
+
+
+
} Control;
struct
struct _AFS_WORKER_QUEUE_HDR *PoolHead;
- ERESOURCE QueueLock;
-
- struct _AFS_WORK_ITEM *QueueHead;
-
- struct _AFS_WORK_ITEM *QueueTail;
-
- KEVENT WorkerQueueHasItems;
-
- LONG QueueItemCount;
-
//
// IO Worker queue
//
struct _AFS_WORKER_QUEUE_HDR *IOPoolHead;
- ERESOURCE IOQueueLock;
-
- struct _AFS_WORK_ITEM *IOQueueHead;
-
- struct _AFS_WORK_ITEM *IOQueueTail;
-
- KEVENT IOWorkerQueueHasItems;
-
- LONG IOQueueItemCount;
-
} Library;
} Specific;