EXT_DELETE_CALLBACKコールバック関数 (wdm.h)
ExTimerDeleteCallback コールバック ルーチンは、オペレーティング システムが EX_TIMER タイマー オブジェクトを削除するときに実行されます。
EXT_DELETE_CALLBACK ExtDeleteCallback;
void ExtDeleteCallback(
[in, optional] PVOID Context
)
{...}
[in, optional] Context
ドライバーが以前に ExDeleteTimer ルーチンに入力パラメーターとして渡した EXT_DELETE_PARAMETERS 構造体の DeleteContext メンバーからのコンテキスト値。
何一つ
オプションとして、ドライバーは、ExDeleteTimer ルーチンに入力パラメーターとして渡す EXT_DELETE_PARAMETERS 構造体の DeleteCallback メンバーの ExTimerDeleteCallback ルーチンへのポインターを指定できます。 ExTimerDeleteCallback ルーチンは、削除中のタイマー オブジェクトで使用するためにドライバーが以前に割り当てた記憶域またはその他のシステム リソースを解放できます。
ドライバーが ExTimerDeleteCallback ルーチンを提供し、ExDeleteRoutine 呼び出しの 待機 パラメーターが TRUE 場合、ExDeleteTimer 戻る前に ExTimerDeleteCallback ルーチン 実行されます。 それ以外の場合、ExTimerDeleteCallback ルーチンは、ExDeleteTimer 呼び出しが返される前または後に実行される可能性があります。 ExTimerDeleteCallback ルーチンは、タイマー オブジェクトが無効になった後にのみ呼び出され、タイマー操作がそれ以上行われず、タイマー オブジェクトに対する保留中のタイマー操作が取り消されるか完了するのを防ぎます。 ドライバーが ExDeleteTimer ルーチンに入力パラメーターとして渡すタイマー オブジェクト (EX_TIMER 構造体) は、ExTimerDeleteCallback ルーチンが実行されるまでに無効になる可能性があります。
詳細については、「ExXxxTimer ルーチンとEX_TIMER オブジェクト する」を参照してください。
ExTimerDeleteCallback コールバック ルーチンを定義するには、まず、定義するコールバック ルーチンの種類を識別する関数宣言を指定する必要があります。 Windows には、ドライバーのコールバック関数の種類のセットが用意されています。 コールバック関数の種類を使用して関数を宣言すると、ドライバー のコード分析、静的ドライバー検証ツール (SDV)、およびその他の検証ツールをすると、エラーが検出され、Windows オペレーティング システムのドライバーを記述するための要件になります。
たとえば、MyExTimerDeleteCallback
という名前の ExTimerDeleteCallback コールバック ルーチンを定義するには、次のコード例に示すように、EXT_DELETE_CALLBACK関数型を使用します。
EXT_DELETE_CALLBACK MyExTimerDeleteCallback;
次に、次のようにコールバック ルーチンを実装します。
_Use_decl_annotations_
VOID
MyExTimerDeleteCallback(
PVOID Context
)
{...}
EXT_DELETE_CALLBACK関数の種類は、Wdm.h ヘッダー ファイルで定義されます。 コード分析ツールの実行時にエラーをより正確に識別するには、_Use_decl_annotations_
注釈を関数定義に追加してください。
_Use_decl_annotations_
注釈により、ヘッダー ファイル内のEXT_DELETE_CALLBACK関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「WDM ドライバー の関数ロール型を使用して関数を宣言するを参照してください。
_Use_decl_annotations_
の詳細については、「関数の動作に注釈を付ける」を参照してください。
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1 以降で使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
IRQL | DISPATCH_LEVELで呼び出されます。 |
ExDeleteTimer の