Fungsi WdfIoTargetCloseForQueryRemove (wdfiotarget.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfIoTargetCloseForQueryRemove untuk sementara menutup target I/O jarak jauh yang ditentukan karena perangkat target mungkin segera dihapus.
Sintaks
void WdfIoTargetCloseForQueryRemove(
[in] WDFIOTARGET IoTarget
);
Parameter
[in] IoTarget
Handel ke objek target I/O jarak jauh yang diperoleh dari panggilan sebelumnya ke WdfIoTargetCreate.
Nilai kembali
Tidak ada
Keterangan
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Driver yang menyediakan fungsi panggilan balik EvtIoTargetQueryRemove harus memanggil WdfIoTargetCloseForQueryRemove dari dalam fungsi panggilan balik tersebut, jika driver menentukan bahwa perangkat target dapat dihapus dengan aman.
Untuk informasi selengkapnya tentang WdfIoTargetCloseForQueryRemove, lihat Mengontrol Status Target I/O Umum.
Untuk informasi selengkapnya tentang target I/O, lihat Menggunakan Target I/O.
Contoh
Contoh kode berikut adalah fungsi panggilan balik EvtIoTargetQueryRemove dari driver sampel Toaster . Fungsi menghentikan timer, memastikan bahwa item kerja yang dikirimkan sebelumnya telah dilayani, lalu memanggil 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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfiotarget.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |