Функция WdfIoTargetCloseForQueryRemove (wdfiotarget.h)
[Применимо к KMDF и UMDF]
Метод WdfIoTargetCloseForQueryRemove временно закрывает указанный удаленный целевой объект ввода-вывода, так как целевое устройство может быть удалено.
Синтаксис
void WdfIoTargetCloseForQueryRemove(
[in] WDFIOTARGET IoTarget
);
Параметры
[in] IoTarget
Дескриптор удаленного целевого объекта ввода-вывода, полученного из предыдущего вызова WdfIoTargetCreate.
Возвращаемое значение
Нет
Замечания
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Драйверы, предоставляющие функцию обратного вызова 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 (include Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |