WdfIoTargetCloseForQueryRemove 関数 (wdfiotarget.h)
[KMDF と UMDF に適用]
WdfIoTargetCloseForQueryRemove メソッドは、ターゲット デバイスが間もなく削除される可能性があるため、指定されたリモート I/O ターゲットを一時的に閉じます。
構文
void WdfIoTargetCloseForQueryRemove(
[in] WDFIOTARGET IoTarget
);
パラメーター
[in] IoTarget
WdfIoTargetCreate の以前の呼び出しから取得されたリモート I/O ターゲット オブジェクトへのハンドル。
戻り値
なし
解説
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
EvtIoTargetQueryRemove コールバック関数を提供するドライバーは、ターゲット デバイスを安全に削除できるとドライバーが判断した場合、そのコールバック関数内から WdfIoTargetCloseForQueryRemove を呼び出す必要があります。
WdfIoTargetCloseForQueryRemove の詳細については、「一般的な I/O ターゲットの状態の制御」を参照してください。
I/O ターゲットの詳細については、「I /O ターゲットの使用」を参照してください。
例
次のコード例は、トースター サンプル ドライバーからの EvtIoTargetQueryRemove コールバック関数です。 関数はタイマーを停止し、以前に送信された作業項目が確実に処理されたことを確認し、 WdfIoTargetCloseForQueryRemove を呼び出します。
NTSTATUS
ToastMon_EvtIoTargetQueryRemove(
WDFIOTARGET IoTarget
)
{
PTARGET_DEVICE_INFO targetDeviceInfo = NULL;
//
// Get I/O target object's context space.
//
targetDeviceInfo = GetTargetDeviceInfo(IoTarget);
//
// Stop the timer and wait for any outstanding work items
// to finish before closing the target.
//
WdfTimerStop(targetDeviceInfo->TimerForPostingRequests, TRUE);
WdfWorkItemFlush(targetDeviceInfo->WorkItemForPostingRequests);
WdfIoTargetCloseForQueryRemove(IoTarget);
return STATUS_SUCCESS;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfiotarget.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |