EVT_WDF_OBJECT_CONTEXT_DESTROY コールバック関数 (wdfobject.h)
[KMDF と UMDF に適用]
ドライバーの EvtDestroyCallback イベント コールバック関数は、フレームワーク オブジェクトの削除に関連付けられている操作を実行します。
構文
EVT_WDF_OBJECT_CONTEXT_DESTROY EvtWdfObjectContextDestroy;
void EvtWdfObjectContextDestroy(
[in] WDFOBJECT Object
)
{...}
パラメーター
[in] Object
フレームワーク オブジェクトへのハンドル。
戻り値
なし
解説
ドライバーは、WDF_OBJECT_ATTRIBUTES構造体で EvtDestroyCallback コールバック関数を指定できます。 この構造体は、 WdfDeviceCreate などのフレームワーク オブジェクトを作成するすべてのフレームワーク メソッドへの入力として使用されます。
オブジェクトの参照カウントが 0 にデクリメントされた後、フレームワークは EvtDestroyCallback コールバック関数を呼び出します。 フレームワークは、 EvtDestroyCallback コールバック関数が返した直後に オブジェクトを削除します。
EvtDestroyCallback はオブジェクト コンテキストにアクセスできますが、オブジェクトのメソッドを呼び出すことはできません。
ドライバーがオブジェクトの EvtCleanupCallback コールバック関数と EvtDestroyCallback コールバック関数の両方を提供する場合、フレームワークは最初 に EvtCleanupCallback コールバック関数を呼び出します。
オブジェクトが削除されると、フレームワークはオブジェクトの子も削除します。 フレームワークは、親オブジェクトの EvtCleanupCallback コールバック関数を呼び出す前に、子オブジェクトの EvtCleanupCallback コールバック関数を呼び出します。 次に、子の参照カウントが 0 の場合、フレームワークは子オブジェクトの EvtDestroyCallback コールバック関数を呼び出します。 最後に、親の参照カウントが 0 の場合、フレームワークは親オブジェクトの EvtDestroyCallback コールバック関数を呼び出します。
ドライバーは、オブジェクトを作成するときに、オブジェクト固有のメモリ バッファーを割り当て、バッファー ポインターをオブジェクトの コンテキスト空間に格納することがあります。 ドライバーの EvtCleanupCallback または EvtDestroyCallback コールバック関数は、これらのメモリ バッファーの割り当てを解除できます。
フレームワーク オブジェクトの削除の詳細については、「 Framework オブジェクトのライフ サイクル」を参照してください。
通常、フレームワークは IRQL <= DISPATCH_LEVEL で EvtDestroyCallback コールバック関数を呼び出します。 ただし、フレームワークは、次の状況で IRQL = PASSIVE_LEVELでコールバック関数を呼び出します。
- オブジェクトのハンドルの種類は、WDFDEVICE、WDFDRIVER、WDFDPC、WDFINTERRUPT、WDFIOTARGET、WDFQUEUE、WDFSTRING、WDFTIMER、または WDFWORKITEM です。
- オブジェクトのハンドルの種類は WDFMEMORY または WDFLOOKASIDE で、ドライバーは PoolType パラメーターに PagedPool を WdfMemoryCreate または WdfLookasideListCreate に指定しています。
オブジェクトの型 | [関数の種類] |
---|---|
デバイス オブジェクト | EVT_WDF_DEVICE_CONTEXT_DESTROY |
I/O キュー オブジェクト | EVT_WDF_IO_QUEUE_CONTEXT_DESTROY_CALLBACK |
File オブジェクト | EVT_WDF_FILE_CONTEXT_DESTROY_CALLBACK |
他のすべてのオブジェクト | EVT_WDF_OBJECT_CONTEXT_DESTROY |
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfobject.h (Wdf.h を含む) |
IRQL | 「解説」を参照してください。 |