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


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

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

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

Синтаксис

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

Параметры

[in] ResourceList

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

[in] Descriptor

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

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

Никакой

Замечания

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

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

Если 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