共用方式為


KeInitializeQueue 函式 (ntifs.h)

KeInitializeQueue 例程會初始化佇列物件,線程可以等候專案。

語法

void KeInitializeQueue(
  [out] PRKQUEUE Queue,
  [in]  ULONG    Count
);

參數

[out] Queue

呼叫端必須在非分頁集區中提供常駐記憶體的 KQUEUE 結構的指標。 此結構的定義如下:

typedef struct _KQUEUE {
    DISPATCHER_HEADER Header;
    LIST_ENTRY EntryListHead;
    ULONG CurrentCount;
    ULONG MaximumCount;
    LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
成員 意義
標頭 佇列標頭。
EntryListHead 佇列中第一個專案的指標。
CurrentCount 佇列上等候的目前線程數目。
MaximumCount 佇列可滿足等候的並行線程數目上限。
ThreadListHead 線程清單中第一個專案的指標。

[in] Count

佇列物件上可同時滿足等候的線程數目上限。 如果未提供此參數,則會使用機器中的處理器數目。

傳回值

沒有

言論

通常,KeInitializeQueue 的呼叫者 也會建立一組專用線程來排入佇列並清除其專案。 這類呼叫端可以指定明確的 Count,以防止太多專用線程在其佇列對象上同時等候。

KeInitializeQueue 將佇列物件的初始訊號狀態設定為 Not Signaled。

如需使用驅動程式管理的內部佇列的詳細資訊,請參閱 Driver-Managed IRP 佇列

要求

要求 價值
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

ExAllocatePoolWithTag

IoAllocateWorkItem

IoQueueWorkItem

KeInsertQueue

KeRemoveQueue

KeRundownQueue

PsCreateSystemThread