共用方式為


NDIS_TIMER_FUNCTION回呼函式 (ndis.h)

當定時器引發時, NdisTimerFunction 回呼函式是由 NDIS 呼叫之後,設定一次性或定期定時器。

注意 您必須使用 NDIS_TIMER_FUNCTION 類型來宣告函式。 如需詳細資訊,請參閱下列範例一節。
 

語法

NDIS_TIMER_FUNCTION NdisTimerFunction;

void NdisTimerFunction(
  [in] PVOID SystemSpecific1,
  [in] PVOID FunctionContext,
  [in] PVOID SystemSpecific2,
  [in] PVOID SystemSpecific3
)
{...}

參數

[in] SystemSpecific1

保留供系統使用之系統特定值的指標。

[in] FunctionContext

驅動程式傳遞至 NdisSetTimerObject 函式的驅動程式提供內容區域的指標。 如果 NdisSetTimerObjectFunctionContext 參數為 NULL,NDIS 會使用驅動程式在 中指定的預設值 NDIS_TIMER_CHARACTERISTICS 結構。 驅動程式將 結構傳遞至 NdisAllocateTimerObject 函式,以初始化相關聯的定時器物件。

[in] SystemSpecific2

保留供系統使用之系統特定值的指標。

[in] SystemSpecific3

保留供系統使用之系統特定值的指標。

傳回值

備註

任何 NDIS 驅動程式都可以有一或多個 NdisTimerFunction 回呼函式。 每個這類 NdisTimerFunction 回呼都必須與不同的驅動程式配置和初始化定時器對象相關聯。

驅動程式會藉由呼叫 來初始化驅動程式配置的定時器物件 NdisAllocateTimerObject 函式。

後續對 NdisSetTimerObject 函式的呼叫會導致與定時器對象相關聯的 NdisTimerFunction 回呼在指定的間隔之後或定期執行。

若要取消 對 NdisTimerFunction 的呼叫,請呼叫 NdisCancelTimerObject 函式。 如果逾時已在呼叫 NdisCancelTimerObject 之前過期,NDIS 仍可能會呼叫 NdisTimerFunction

如果 NdisTimerFunction 回呼與其他驅動程式函式共用資源,驅動程式應該同步處理這些資源的存取權與微調鎖定。

例子

若要定義 NdisTimerFunction 函式,您必須先提供函式宣告來識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析靜態驅動程序驗證器 (SDV) ,以及其他驗證工具會尋找錯誤,而且這是撰寫 Windows 操作系統驅動程式的需求。

例如,若要定義名為 「MyTimerCallback」 的 NdisTimerFunction 函式,請使用 NDIS_TIMER_FUNCTION 類型,如下列程式代碼範例所示:

NDIS_TIMER_FUNCTION MyTimerCallback;

然後,實作您的函式,如下所示:

_Use_decl_annotations_
VOID
 MyTimerCallback(
    PVOID  SystemSpecific1,
    PVOID  FunctionContext,
    PVOID  SystemSpecific2,
    PVOID  SystemSpecific3
    )
  {...}

NDIS_TIMER_FUNCTION函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 Use_decl_annotations 註釋新增至函式定義。 Use_decl_annotations批注可確保使用頭檔中套用至NDIS_TIMER_FUNCTION函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。

如需 Use_decl_annotations的詳細資訊,請參閱 標註函式行為

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Windows
標頭 ndis.h (包括 Ndis.h)
IRQL DISPATCH_LEVEL

另請參閱

初始化 NDIS 定時器

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetTimerObject

維護定時器

設定和清除定時器