Функция WdfIoResourceRequirementsListInsertIoResList (wdfresource.h)
[Применимо только к KMDF]
Метод WdfIoRequirementsListInsertIoResList вставляет логическую конфигурацию в список требований к ресурсам.
Синтаксис
NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList,
[in] ULONG Index
);
Параметры
[in] RequirementsList
Дескриптор объекта списка требований к ресурсам платформы, который представляет список требований к ресурсам устройства.
[in] IoResList
Дескриптор объекта списка ресурсов платформы, представляющий логическую конфигурацию аппаратных ресурсов для устройства.
[in] Index
Отсчитываемое от нуля значение, используемое в качестве индекса в набор логических конфигураций, которые уже находятся в списке требований к ресурсам, который RequirementsList указывает. Чтобы добавить конфигурацию в конец списка, укажите WDF_INSERT_AT_END или возвращаемое значение из WdfIoResourceRequirementsListGetCount.
Возвращаемое значение
WdfIoResourceRequirementsListInsertIoResList возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Недопустимый параметр, указанный. |
|
Указанный объект resource-requirements-list не принадлежит указанному объекту resource-range-list. |
|
Платформа не могла выделить пространство для хранения объекта списка ресурсов. |
|
Указанное значение параметра Index было слишком большим. |
Проверка системной ошибки возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Замечания
Метод WdfIoRequirementsListInsertIoResList вставляет логическую конфигурацию, которую параметр IoResList указывает в список требований к ресурсам, указанный параметром RequirementsList перед логической конфигурацией, которая определяет значение Index.
Чтобы добавить логическую конфигурацию в конец списка требований к ресурсам, используйте WDF_INSERT_AT_END или возвращаемое значение из WdfIoResourceRequirementsListGetCount в качестве значения индекса. Кроме того, используйте метод WdfIoRequirementsListAppendIoResList.
Дополнительные сведения о списках требований к ресурсам см. в разделе Аппаратные ресурсы для Framework-Based драйверов.
Примеры
В следующем примере кода показано, как функция обратного вызова EvtDeviceRequirementsQuery может создать две пустые логические конфигурации и добавить их в список требований к ресурсам.
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) |