Функция WdfRequestIsCanceled (wdfrequest.h)
[Относится к KMDF и UMDF]
Метод WdfRequestIsCanceled определяет, пытался ли диспетчер операций ввода-вывода отменить указанный запрос ввода-вывода.
Синтаксис
BOOLEAN WdfRequestIsCanceled(
[in] WDFREQUEST Request
);
Параметры
[in] Request
Дескриптор объекта запроса платформы.
Возвращаемое значение
WdfRequestIsCanceled возвращает значение TRUE , если диспетчер операций ввода-вывода пытался отменить указанный запрос ввода-вывода. Этот метод может возвращать значение TRUE , даже если вызывающий драйвер не является владельцем запроса. Если драйвер не владеет запросом, он не должен вызывать WdfRequestIsCanceled. Дополнительные сведения см. в разделе Примечания.
WdfRequestIsCanceled возвращает значение FALSE по одной из следующих причин:
- Диспетчер операций ввода-вывода не пытался отменить запрос.
- Вызывающий драйвер не владеет запросом.
- Вызывающий драйвер вызвал метод WdfRequestMarkCancelable или WdfRequestMarkCancelableEx .
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Если драйвер не вызывал функцию обратного вызова EvtRequestCancelable или WdfRequestMarkCancelableEx для регистрации функции обратного вызова EvtRequestCancel , но если вы хотите, чтобы драйвер определил, попытался ли диспетчер операций ввода-вывода отменить запрос ввода-вывода, драйвер может вызвать WdfRequestIsCanceled.
Если драйвер вызвал WdfRequestMarkCancelable или WdfRequestMarkCancelableEx, он должен вызвать WdfRequestUnmarkCancelable перед вызовомWdfRequestIsCanceled.
Драйвер может вызывать WdfRequestIsCanceled для запроса, только если драйвер владеет запросом ввода-вывода.
Если WdfRequestIsCanceled возвращает значение TRUE, драйвер должен отменить запрос, вызвав WdfRequestComplete с параметром Status STATUS_CANCELLED. Если драйвер пытается выполнить запрос, который ему не принадлежит, драйвер может вызвать сбой системы.
Дополнительные сведения о WdfRequestIsCanceled см. в разделе Отмена запросов ввода-вывода.
Примеры
В следующем примере кода вызывается WdfRequestComplete, если WdfRequestIsCanceled возвращает значение TRUE.
if (WdfRequestIsCanceled(request)) {
WdfRequestComplete(
request,
STATUS_CANCELLED
);
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfrequest.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ReqIsCancOnCancReq(kmdf) |