MINIPORT_SYNCHRONIZE_INTERRUPT回呼函式 (ndis.h)
迷你埠驅動程序必須提供 MiniportSynchronizeInterrupt 處理程式,如果執行於小於 DIRQL 的驅動程式函式會與 MiniportInterrupt 函式共用資源。
針對訊息訊號中斷,迷你埠驅動程式會提供 MiniportSynchronizeMessageInterrupt 處理程式,如果任何以小於 DIRQL 執行的驅動程式函式會共用訊息訊號中斷與 MiniportMessageInterrupt 函式。
語法
MINIPORT_SYNCHRONIZE_INTERRUPT MiniportSynchronizeInterrupt;
BOOLEAN MiniportSynchronizeInterrupt(
[in] NDIS_HANDLE SynchronizeContext
)
{...}
參數
[in] SynchronizeContext
當迷你埠驅動程式的 MiniportXxx 或內部函式呼叫 時提供的內容區域句柄 NdisMSynchronizeWithInterruptEx 函式。
傳回值
MiniportSynchronizeInterrupt 會傳回布爾值與驅動程式決定的意義。 當 NDIS 從 NdisMSynchronizeWithInterruptEx傳回 NDIS 時,NDIS 會傳回相同的值。
言論
若要使用 MiniportInterrupt同步存取共用資源,低優先順序驅動程式函式必須呼叫 NdisMSynchronizeWithInterruptEx 函式。 驅動程式的 MiniportSynchronizeInterrupt 函式會存取 DIRQL 上的共享資源。 呼叫 NdisMSynchronizeWithInterruptEx 可防止這類迷你埠驅動程式中的競爭狀況和死結。
在自己之間共享資源的任何較低優先順序驅動程式函式(但不與在 DIRQL 執行的任何函式)都應該使用微調鎖定來保護這些共享資源。
MiniportSynchronizeInterrupt 會在驅動程式的 MiniportInitializeEx 函式呼叫 時,在指派的 DIRQL 上執行 NdisMRegisterInterruptEx 函式。 就像任何在 DIRQL 執行的驅動程式函式一樣,MiniportSynchronizeInterrupt 應該儘快將控制權傳回給呼叫者,而且它只能呼叫安全在任何 IRQL 呼叫的 NdisXxx 函式。
範例
若要定義 MiniportSynchronizeInterrupt 函式,您必須先提供可識別您所定義函式類型的函式宣告。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析、靜態驅動程序驗證器 (SDV)和其他驗證工具尋找錯誤,而且是撰寫 Windows作系統驅動程式的需求。例如,若要定義名為 「MySynchronizeInterrupt」 的 MiniportSynchronizeInterrupt 函式,請使用 MINIPORT_SYNCHRONIZE_INTERRUPT 類型,如下列程式代碼範例所示:
MINIPORT_SYNCHRONIZE_INTERRUPT MySynchronizeInterrupt;
然後,實作您的函式,如下所示:
_Use_decl_annotations_
BOOLEAN
MySynchronizeInterrupt(
NDIS_HANDLE SynchronizeContext
)
{...}
若要定義訊息訊號中斷的 MiniportSynchronizeMessageInterrupt 函式,請使用 MINIPORT_SYNCHRONIZE_MESSAGE_INTERRUPT 類型,如下列程式代碼範例所示:
MINIPORT_SYNCHRONIZE_MESSAGE_INTERRUPT MySynchronizeMessageInterrupt;
然後,實作您的函式,如下所示:
_Use_decl_annotations_
BOOLEAN
MySynchronizeMessageInterrupt(
NDIS_HANDLE SynchronizeContext
)
{...}
MINIPORT_SYNCHRONIZE_INTERRUPT 和 MINIPORT_SYNCHRONIZE_MESSAGE_INTERRUPT 函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更準確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations 批注可確保會使用套用至頭檔中函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。
如需 Use_decl_annotations的相關信息,請參閱 批注函式行為。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平臺 | 窗戶 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | 請參閱一節 |