Función WdfIoResourceRequirementsListInsertIoResList (wdfresource.h)

[Solo se aplica a KMDF]

El método WdfIoResourceRequirementsListInsertIoResList inserta una configuración lógica en una lista de requisitos de recursos.

Sintaxis

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

Parámetros

[in] RequirementsList

Identificador de un objeto resource-requirements-list de marco que representa la lista de requisitos de recursos de un dispositivo.

[in] IoResList

Identificador de un objeto framework resource-range-list que representa una configuración lógica de recursos de hardware para un dispositivo.

[in] Index

Valor de base cero que se usa como índice en el conjunto de configuraciones lógicas que ya están en la lista de requisitos de recursos que RequirementsList especifica. Para agregar una configuración al final de la lista, especifique WDF_INSERT_AT_END o el valor devuelto de WdfIoResourceRequirementsListGetCount.

Valor devuelto

WdfIoResourceRequirementsListInsertIoResList devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Un parámetro no válido como se especifica.
STATUS_INVALID_DEVICE_REQUEST
El objeto resource-requirements-list especificado no posee el objeto resource-range-list especificado.
STATUS_INSUFFICIENT_RESOURCES
El marco no pudo asignar espacio para almacenar el objeto resource-range-list.
STATUS_ARRAY_BOUNDS_EXCEEDED
El valor especificado para el parámetro Index era demasiado grande.
 

Se produce una comprobación de errores del sistema si el controlador proporciona un identificador de objeto no válido.

Comentarios

El método WdfIoResourceRequirementsListInsertIoResList inserta la configuración lógica que el parámetro IoResList especifica en la lista de requisitos de recursos que especifica el parámetro RequirementsList , delante de la configuración lógica que identifica el valor index .

Para agregar una configuración lógica al final de una lista de requisitos de recursos, use WDF_INSERT_AT_END o el valor devuelto de WdfIoResourceRequirementsListGetCount como valor de Índice . Como alternativa, use el método WdfIoResourceRequirementsListAppendIoResList .

Para obtener más información sobre las listas de requisitos de recursos, consulte Recursos de hardware para controladores de Framework-Based.

Ejemplos

En el ejemplo de código siguiente se muestra cómo una función de devolución de llamada EvtDeviceResourceRequirementsQuery puede crear dos configuraciones lógicas vacías y agregarlas a una lista de requisitos de recursos.

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;
    }
...
}

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Encabezado wdfresource.h (incluya Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL <=DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList