Функция WdfPdoMarkMissing (wdfpdo.h)

[Относится только к KMDF]

Метод WdfPdoMarkMissing информирует платформу о том, что устройство больше не доступно.

Синтаксис

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

Параметры

[in] Device

Дескриптор объекта устройства платформы, который представляет объект физического устройства (PDO).

Возвращаемое значение

Если операция выполнена успешно, функция возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_INVALID_PARAMETER
Дескриптор устройства не представляет PDO.
STATUS_NO_SUCH_DEVICE
Не удалось найти объект устройства.
 

Метод также может возвращать другие значения NTSTATUS.

Системная ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Дополнительные сведения о WdfPdoMarkMissing см. в разделе Static Enumeration.

Примеры

В следующем примере кода выполняется поиск в списке дочерних устройств, чтобы найти то, которое соответствует указанному серийному номеру. Когда пример находит правильный дочерний элемент, он вызывает WdfPdoMarkMissing , чтобы указать, что дочерний элемент недоступен. Этот пример был взят из примера драйвера автобуса Тостера и упрощен.

WDFDEVICE  hChild = NULL;
NTSTATUS  status = STATUS_INVALID_PARAMETER;
BOOLEAN  found = FALSE;
PPDO_DEVICE_DATA  pdoData;

WdfFdoLockStaticChildListForIteration(Device);

while ((hChild = WdfFdoRetrieveNextStaticChild(
                                               Device, 
                                               hChild,
                                               WdfRetrieveAddedChildren
                                               )) != NULL) {
    pdoData = PdoGetData(hChild);  // Device object context space
    if (SerialNo == pdoData->SerialNo) {
        status = WdfPdoMarkMissing(hChild);
        if(!NT_SUCCESS(status)) {
            KdPrint(("WdfPdoMarkMissing failed 0x%x\n", status));
            break;
        }
        found = TRUE;
        break;
    }
}
WdfFdoUnlockStaticChildListFromIteration(Device);

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfpdo.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы).
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

См. также раздел

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration