Функция 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, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Недопустимый параметр, как указано. |
|
Указанный объект resource-requirements-list не является владельцем указанного объекта resource-range-list. |
|
Платформе не удалось выделить место для хранения объекта resource-range-list. |
|
Указанное значение для параметра 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) |