Функция WdfIoTargetCloseForQueryRemove (wdfiotarget.h)
[Относится к KMDF и UMDF]
Метод WdfIoTargetCloseForQueryRemove временно закрывает указанный удаленный целевой объект ввода-вывода , так как целевое устройство вскоре может быть удалено.
Синтаксис
void WdfIoTargetCloseForQueryRemove(
[in] WDFIOTARGET IoTarget
);
Параметры
[in] IoTarget
Дескриптор удаленного целевого объекта ввода-вывода, полученный при предыдущем вызове WdfIoTargetCreate.
Возвращаемое значение
None
Remarks
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Драйверы, предоставляющие функцию обратного вызова EvtIoTargetQueryRemove , должны вызывать WdfIoTargetCloseForQueryRemove из этой функции обратного вызова, если драйвер определяет, что целевое устройство можно безопасно удалить.
Дополнительные сведения о WdfIoTargetCloseForQueryRemove см. в разделе Управление состоянием общего целевого объекта ввода-вывода.
Дополнительные сведения о целевых объектах ввода-вывода см. в разделе Использование целевых объектов ввода-вывода.
Примеры
В следующем примере кода используется функция обратного вызова 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) |