Partager via


WdfIoResourceRequirementsListRemoveByIoResList, fonction (wdfresource.h)

[S’applique à KMDF uniquement]

La méthode WdfIoResourceRequirementsListRemoveByIoResList supprime une configuration logique d’une liste de ressources requises.

Syntaxe

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

Paramètres

[in] RequirementsList

Handle d’un objet resource-requirements-list d’infrastructure qui représente la liste des besoins en ressources d’un appareil.

[in] IoResList

Handle d’un objet resource-range-list d’infrastructure qui représente la configuration logique à supprimer de la liste des exigences de ressources spécifiée par RequirementsList .

Valeur de retour

None

Remarques

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

La méthode WdfIoResourceRequirementsListRemoveByIoResList supprime la configuration logique associée au handle spécifié par le paramètre IoResList .

Lorsque WdfIoResourceRequirementsListRemoveByIoResList supprime la configuration logique qui a la valeur d’index n, la valeur d’index de la configuration logique suivante passe de n+1 à n.

Pour plus d’informations sur les listes de ressources requises, consultez Ressources matérielles pour les pilotes Framework-Based.

Exemples

L’exemple de code suivant recherche les configurations logiques dans la liste des besoins en ressources d’un appareil pour rechercher une configuration qui contient une adresse de port spécifique. Si l’exemple trouve cette configuration, il supprime la configuration.

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

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfresource.h (include Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion des versions de la bibliothèque d’infrastructure).)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListGetCount

WdfIoResourceListGetDescriptor

WdfIoResourceRequirementsListGetCount

WdfIoResourceRequirementsListGetIoResList

WdfIoResourceRequirementsListRemove