Функция 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) |