Поделиться через


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

[Применимо только к KMDF]

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

Синтаксис

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

Параметры

[in] Device

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

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

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

Код возврата Описание
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Дескриптор устройства не представляет PDO.
STATUS_NO_SUCH_DEVICE
Не удалось найти объект устройства.
 

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

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

Замечания

Дополнительные сведения о WdfPdoMarkMissingсм. в статических перечислений.

Примеры

В следующем примере кода выполняется поиск списка дочерних устройств, чтобы найти его, соответствующий указанному серийному номеру. При поиске правильного дочернего элемента вызывается 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