[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 |
ヘッダー | wdfiotarget.h (Wdf.h を含む) |
図書館 | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
こちらもご覧ください
EvtIoTargetQueryRemove の
WdfIoTargetCreate の