EVT_SERCX_FILECLOSE コールバック関数 (sercx.h)
EvtSerCxFileClose イベント コールバック関数は、シリアル コントローラー デバイスを表すファイル オブジェクトがリリースされたことをシリアル コントローラー ドライバーに通知します。
構文
EVT_SERCX_FILECLOSE EvtSercxFileclose;
void EvtSercxFileclose(
[in] WDFDEVICE Device
)
{...}
パラメーター
[in] Device
シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。
戻り値
なし
解説
この関数は、シリアル コントローラー デバイスを、データの受信と送信の準備ができている状態から削除する必要があります。 割り込みが有効になっている場合、この関数は割り込みを無効にする必要があります。 ファイル オブジェクトの有効期間に対してのみ割り当てられるメモリは、この関数または EvtSerCxFileCleanup 関数で割り当てを解除する必要があります。
シリアル コントローラー ドライバーが EvtSerCxFileCleanup 関数を実装している場合、シリアル フレームワーク拡張機能 (SerCx) は EvtSerCxFileClose 関数を呼び出す前にこの関数を呼び出します。 SerCx は、クライアントがシリアル コントローラー デバイスを表すファイル オブジェクトへの最後のハンドルを閉じるときに EvtSerCxFileCleanup 関数を呼び出します。 この呼び出し後、ドライバーは I/O 操作に対する新しい要求を受け取らなくなります。 SerCx は、ファイル オブジェクトが解放されたときに EvtSerCxFileClose 関数を呼び出します。これは、未処理のすべての I/O 要求が完了または取り消された後にのみ発生します。
EvtSerCxFileClose コールバック関数を登録するには、ドライバーで SerCxInitialize メソッドを呼び出す必要があります。
詳細については、「 フレームワーク ファイル オブジェクト」を参照してください。
例
このコールバックの関数型は、次のように Sercx.h で宣言されます。
typedef VOID
EVT_SERCX_FILECLOSE(
__in WDFDEVICE Device
);
という名前MyEvtSerCxFileClose
の EvtSerCxFileClose コールバック関数を定義するには、まず、静的ドライバー検証ツール (SDV) およびその他の検証ツールで必要な関数宣言を次のように指定する必要があります。
EVT_SERCX_FILECLOSE MyEvtSerCxFileClose;
次に、コールバック関数を次のように実装します。
VOID
MyEvtSerCxFileClose(
__in WDFDEVICE Device
)
{ ... }
関数宣言の SDV 要件の詳細については、「 KMDF ドライバーの関数ロール型を使用して関数を宣言する」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8以降で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | sercx.h |
IRQL | IRQL <= DISPATCH_LEVEL で呼び出されます |