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


Функция WdfIoResourceListRemoveByDescriptor (wdfresource.h)

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

Метод WdfIoResourceListRemoveByDescriptor удаляет дескриптор ресурса из логической конфигурации списка обязательных ресурсов.

Синтаксис

void WdfIoResourceListRemoveByDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

Параметры

[in] ResourceList

Дескриптор объекта framework resource-range-list, который представляет логическую конфигурацию аппаратных ресурсов для устройства.

[in] Descriptor

Указатель на структуру IO_RESOURCE_DESCRIPTOR , описывающую аппаратный ресурс.

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

None

Remarks

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

Метод WdfIoResourceListRemoveByDescriptor удаляет дескриптор ресурса, соответствующий параметру Descriptor . Чтобы найти совпадение, метод сравнивает указанный дескриптор ресурса с дескрипторами ресурсов в логической конфигурации( байт для байтов).

Когда WdfIoResourceListRemoveByDescriptor удаляет дескриптор ресурса со значением индекса n, значение индекса следующего дескриптора ресурса изменяется с n+1 на n.

Дополнительные сведения о списках требований к ресурсам и логических конфигурациях см. в разделе Аппаратные ресурсы для драйверов Framework-Based.

Примеры

В следующем примере кода выполняется поиск дескриптора ресурса, содержащего указанный адрес порта, в логической конфигурации удаляется дескриптор ресурса.

IO_RESOURCE_DESCRIPTOR descriptor;
ULONG resCount, j;

//
// Get the number of resource descriptors that
// are in this logical configuration.
//
resCount = WdfIoResourceListGetCount(reslist);

for (j = 0; j < resCount; j++) {
    PIO_RESOURCE_DESCRIPTOR descriptor;

    //
    // Get the next resource descriptor.
    //
    descriptor = WdfIoResourceListGetDescriptor(
                                                reslist,
                                                j
                                                );

    //
    // Stop if this descriptor is the port descriptor that
    // we're looking for, and remove the descriptor.
    //
    if (descriptor->Type == CmResourceTypePort) {
        if ((descriptor->u.port.MinimumAddress) == PORT_RANGE_A) {
               WdfIoResourceListRemoveByDescriptor(
                                                   Reslist,
                                                   descriptor
                                                   );
               break;
        }
    }
}

Требования

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

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

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListRemove