共用方式為


分派 IRQL 追蹤

為了改善系統效能,某些 NDIS 函式(例如,MiniportSendNetBufferLists 函式)包含表示目前 IRQL 的分派層級旗標。 適當地使用分派層級旗標有助於避免不必要地嘗試設定 IRQL。

還有其他旗標可控制其他屬性,但分派層級旗標的名稱如下:

NDIS_SEND_FLAGS_DISPATCH_LEVEL

NDIS_SEND_COMPLETE_FLAGS_調度級別

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

NDIS_RETURN_FLAGS_DISPATCH_LEVEL

NDIS_RWL_AT_DISPATCH_LEVEL

呼叫者必須根據已知的當前 IRQL 來判斷調度層級標誌的設定,而不是通過測試 IRQL。 例如,您知道 IRQL,因為它是驅動程式設計的固定特性,或驅動程式儲存了目前的 IRQL。

如果已知的目前 IRQL 是 DISPATCH_LEVEL,呼叫者應該設定此旗標。 如果當前的 IRQL 未知,或者呼叫者未在 DISPATCH_LEVEL 執行,則呼叫者應該清除此標誌。 如果呼叫端是 NDIS,則呼叫的函式應該測試此旗標,以避免變更 IRQL。

驅動程式不應該測試 IRQL 來設定分派層級旗標的值。 測試會使旗標失去作用。 如有必要,呼叫的函式可以直接執行測試本身。 驅動程式判斷它應該或不應該設定旗標的方式會留給特定驅動程序的設計。