NDIS_TIMER_FUNCTION回呼函式 (ndis.h)
NdisTimerFunction 回呼函式會在驅動程式設定定時器引發時,由 NDIS 呼叫。
語法
NDIS_TIMER_FUNCTION NdisTimerFunction;
void NdisTimerFunction(
[in] PVOID SystemSpecific1,
[in] PVOID FunctionContext,
[in] PVOID SystemSpecific2,
[in] PVOID SystemSpecific3
)
{...}
參數
[in] SystemSpecific1
保留供系統使用之系統特定值的指標。
[in] FunctionContext
驅動程式傳遞至 NdisSetTimerObject 函式的驅動程式提供內容區域的指標。 如果 NdisSetTimerObject 的 FunctionContext 參數 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 和更新版本支援。 |
目標平臺 | 窗戶 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | DISPATCH_LEVEL |