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

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

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

Синтаксис

NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList,
  [in] ULONG           Index
);

Параметры

[in] RequirementsList

Дескриптор объекта resource-requirements-list платформы, который представляет список требований к ресурсам устройства.

[in] IoResList

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

[in] Index

Отсчитываемое от нуля значение, которое используется в качестве индекса в наборе логических конфигураций, которые уже находятся в списке требований к ресурсам, заданном RequirementsList . Чтобы добавить конфигурацию в конец списка, укажите WDF_INSERT_AT_END или возвращаемое значение из WdfIoResourceRequirementsListGetCount.

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

WdfIoResourceRequirementsListInsertIoResList возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:

Код возврата Описание
STATUS_INVALID_PARAMETER
Недопустимый параметр, как указано.
STATUS_INVALID_DEVICE_REQUEST
Указанный объект resource-requirements-list не является владельцем указанного объекта resource-range-list.
STATUS_INSUFFICIENT_RESOURCES
Платформе не удалось выделить место для хранения объекта resource-range-list.
STATUS_ARRAY_BOUNDS_EXCEEDED
Указанное значение для параметра Index было слишком большим.
 

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

Комментарии

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

Чтобы добавить логическую конфигурацию в конец списка требований к ресурсам, используйте WDF_INSERT_AT_END или возвращаемое значение из WdfIoResourceRequirementsListGetCount в качестве значения Индекса . Кроме того, используйте метод WdfIoResourceRequirementsListAppendIoResList .

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

Примеры

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

NTSTATUS
Example_EvtDeviceResourceRequirementsQuery(
    IN WDFDEVICE Device,
    IN WDFIORESREQLIST RequirementsList
    )
{
    NTSTATUS  status;
    WDFIORESLIST  logConfig1;
    WDFIORESLIST  logConfig2;

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig1
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceRequirementsListAppendIoResList(
                                             RequirementsList,
                                             logConfig1
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig2
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }
    status = WdfIoResourceRequirementsListInsertIoResList(
                                             RequirementsList,
                                             logConfig2,
                                             WDF_INSERT_AT_END
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }
...
}

Требования

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

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

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList