EVT_SERCX_FILECLEANUP コールバック関数 (sercx.h)
EvtSerCxFileCleanup イベント コールバック関数は、クライアントがシリアル コントローラー デバイスを表すファイル オブジェクトへの最後のハンドルを閉じたことをシリアル コントローラー ドライバーに通知します。
構文
EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;
void EvtSercxFilecleanup(
[in] WDFDEVICE Device
)
{...}
パラメーター
[in] Device
シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。
戻り値
何一つ
備考
この関数は、ドライバーがファイル オブジェクトの有効期間中に以前に割り当てた特定のシステム リソースの割り当てを解除できます。 EvtSerCxFileClose 関数と組み合わせて、EvtSerCxFileCleanup 関数は、シリアル コントローラー デバイスをデータの受信と送信の準備ができている状態から削除する必要があります。 EvtSerCxFileCleanup 関数は、メモリの割り当て解除などのクリーンアップ タスクに特に焦点を当てる必要があります。
シリアル コントローラー ドライバーが以前に割り当てたメモリが、現在閉じられているファイル オブジェクトの有効期間中のみである場合、ドライバーは、
通常、割り込みは、ファイル オブジェクトが解放された後にのみ無効にする必要があります。 したがって、EvtSerCxFileClose 関数は、EvtSerCxFileCleanup 関数ではなく、割り込みを無効にする必要があります。
SerCx は、ファイル オブジェクトへの最後のハンドルが閉じられた後、ドライバーの EvtSerCxFileCleanup 関数を呼び出します。 未処理の I/O 要求のため、このオブジェクトはまだ解放されていない可能性があります。 この呼び出しの後、ドライバーは I/O 操作の新しい要求を受信しません。
SerCx は、ドライバーの EvtSerCxFileCleanup 関数を呼び出した後、ドライバーの EvtSerCxFileClose 関数を呼び出します。 SerCx は、ファイル オブジェクトが解放された後、EvtSerCxFileClose 関数を呼び出します。これは、未処理のすべての I/O 要求が完了または取り消された場合にのみ発生します。
EvtSerCxFileCleanup 関数は省略可能です。 シリアル コントローラー ドライバーがこの関数を実装していない場合、ドライバーの EvtSerCxFileClose 関数は、最後のファイル ハンドルが閉じられた後に必要なすべてのクリーンアップ タスクを処理する必要があります。
EvtSerCxFileCleanup コールバック関数を登録するには、ドライバーは、SerCxInitialize メソッドを呼び出す必要があります。
詳細については、「Framework ファイル オブジェクトの」を参照してください。
例
このコールバックの関数型は、次のように Sercx.h で宣言されています。
typedef VOID
EVT_SERCX_FILECLEANUP(
__in WDFDEVICE Device
);
EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;
次に、次のようにコールバック関数を実装します。
VOID
MyEvtSerCxFileCleanup(
__in WDFDEVICE Device
)
{ ... }
関数宣言の SDV 要件の詳細については、「宣言する関数を宣言する KMDF ドライバーのの関数の役割の種類を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 以降で使用できます。 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | sercx.h |
IRQL | IRQL <= DISPATCH_LEVEL で呼び出されます |
関連項目
EvtSerCxFileClose の