Función WdfIoResourceRequirementsListRemoveByIoResList (wdfresource.h)

[Solo se aplica a KMDF]

El método WdfIoResourceRequirementsListRemoveByIoResList quita una configuración lógica de una lista de requisitos de recursos.

Sintaxis

void WdfIoResourceRequirementsListRemoveByIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList
);

Parámetros

[in] RequirementsList

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

[in] IoResList

Identificador de un objeto framework resource-range-list que representa la configuración lógica que se va a quitar de la lista de requisitos de recursos que requirementsList especifica.

Valor devuelto

None

Observaciones

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

El método WdfIoResourceRequirementsListRemoveByIoResList quita la configuración lógica asociada al identificador que especifica el parámetro IoResList .

Cuando WdfIoResourceRequirementsListRemoveByIoResList quita la configuración lógica que tiene el valor de índice n, el valor de índice de la siguiente configuración lógica cambia de n+1 a n.

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 buscan las configuraciones lógicas de la lista de requisitos de recursos de un dispositivo para buscar una configuración que contenga una dirección de puerto específica. Si el ejemplo encuentra esa configuración, quita la configuración.

NTSTATUS
Example_EvtDeviceFilterRemoveResourceRequirements(
    IN WDFDEVICE Device,
    IN WDFIORESREQLIST RequirementsList
    )
{
    ULONG i, j, reqCount, resCount;
    BOOLEAN descriptorFound = FALSE;

    //
    // Obtain the number of logical configurations.
    //
    reqCount = WdfIoResourceRequirementsListGetCount(RequirementsList);

    //
    // Search each logical configuration.
    //
    for (i = 0; i < reqCount; i++) {
        WDFIORESLIST reslist;

        if (descriptorFound) {
            break;
        }
        reslist = WdfIoResourceRequirementsListGetIoResList(RequirementsList, i);

        //
        // 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.
            //
            if (descriptor->Type == CmResourceTypePort) {
                if ((descriptor->u.Port.MinimumAddress) == PORT_RANGE_A) {
                    WdfIoResourceRequirementsListRemoveByIoResList(
                                 RequirementsList,
                                 reslist
                                 );
                    descriptorFound = TRUE;
                    break;
            }
        }
    }
...
}

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

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListGetCount

WdfIoResourceListGetDescriptor

WdfIoResourceRequirementsListGetCount

WdfIoResourceRequirementsListGetIoResList

WdfIoResourceRequirementsListRemove