33 DeviceQueue->Busy=
FALSE;
54 if (!DeviceQueue->Busy)
58 DeviceQueue->Busy =
TRUE;
102 if (!DeviceQueue->Busy)
106 DeviceQueue->Busy =
TRUE;
111 NextEntry = &DeviceQueue->DeviceListHead;
120 if (SortKey < LastEntry->
SortKey)
126 NextEntry = NextEntry->
Flink;
160 DPRINT(
"KeRemoveDeviceQueue() DevQueue %p\n", DeviceQueue);
164 ASSERT(DeviceQueue->Busy);
170 DeviceQueue->Busy =
FALSE;
205 DPRINT(
"KeRemoveByKeyDeviceQueue() DevQueue %p, SortKey 0x%x\n", DeviceQueue,
SortKey);
209 ASSERT(DeviceQueue->Busy);
215 DeviceQueue->Busy =
FALSE;
221 NextEntry = &DeviceQueue->DeviceListHead;
237 NextEntry = DeviceQueue->DeviceListHead.
Flink;
241 ASSERT(NextEntry != &DeviceQueue->DeviceListHead);
247 if (SortKey <= ReturnEntry->
SortKey)
break;
250 NextEntry = NextEntry->
Flink;
281 DPRINT(
"KeRemoveByKeyDeviceQueueIfBusy() DevQueue %p, SortKey 0x%x\n", DeviceQueue,
SortKey);
287 if (!(DeviceQueue->Busy) || (
IsListEmpty(&DeviceQueue->DeviceListHead)))
290 DeviceQueue->Busy =
FALSE;
296 NextEntry = &DeviceQueue->DeviceListHead;
312 NextEntry = DeviceQueue->DeviceListHead.
Flink;
316 ASSERT(NextEntry != &DeviceQueue->DeviceListHead);
322 if (SortKey <= ReturnEntry->
SortKey)
break;
325 NextEntry = NextEntry->
Flink;
359 ASSERT(DeviceQueue->Busy);
PKDEVICE_QUEUE_ENTRY NTAPI KeRemoveDeviceQueue(IN PKDEVICE_QUEUE DeviceQueue)
BOOLEAN NTAPI KeInsertByKeyDeviceQueue(IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry, IN ULONG SortKey)
PKDEVICE_QUEUE_ENTRY NTAPI KeRemoveByKeyDeviceQueueIfBusy(IN PKDEVICE_QUEUE DeviceQueue, IN ULONG SortKey)
BOOLEAN NTAPI KeInsertDeviceQueue(IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry)
VOID NTAPI KeInitializeDeviceQueue(IN PKDEVICE_QUEUE DeviceQueue)
PKDEVICE_QUEUE_ENTRY NTAPI KeRemoveByKeyDeviceQueue(IN PKDEVICE_QUEUE DeviceQueue, IN ULONG SortKey)
BOOLEAN NTAPI KeRemoveEntryDeviceQueue(IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define RemoveHeadList(ListHead)
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
FORCEINLINE VOID KiAcquireDeviceQueueLock(IN PKDEVICE_QUEUE DeviceQueue, IN PKLOCK_QUEUE_HANDLE DeviceLock)
FORCEINLINE VOID KiReleaseDeviceQueueLock(IN PKLOCK_QUEUE_HANDLE DeviceLock)
LIST_ENTRY DeviceListEntry
struct _LIST_ENTRY * Blink
struct _LIST_ENTRY * Flink
#define CONTAINING_RECORD(address, type, field)
_Inout_ PKDEVICE_QUEUE_ENTRY _In_ ULONG SortKey
_Inout_ PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
#define ASSERT_DEVICE_QUEUE(Object)
struct _KDEVICE_QUEUE KDEVICE_QUEUE