Partager via


WdfIoResourceRequirementsListInsertIoResList, fonction (wdfresource.h)

[S’applique uniquement à KMDF]

La méthode WdfIoResourceRequirementsListInsertIoResList insère une configuration logique dans une liste des exigences de ressources.

Syntaxe

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

Paramètres

[in] RequirementsList

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

[in] IoResList

Handle vers un objet de liste de plages de ressources framework qui représente une configuration logique des ressources matérielles pour un appareil.

[in] Index

Valeur de base zéro utilisée comme index dans l’ensemble de configurations logiques déjà dans la liste des exigences de ressources qui RequirementsList spécifie. Pour ajouter une configuration à la fin de la liste, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfIoResourceRequirementsListGetCount.

Valeur de retour

WdfIoResourceRequirementsListInsertIoResList retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Retourner le code Description
STATUS_INVALID_PARAMETER
Paramètre non valide tel que spécifié.
STATUS_INVALID_DEVICE_REQUEST
L’objet resource-requirements-list spécifié ne possède pas l’objet resource-range-list spécifié.
STATUS_INSUFFICIENT_RESOURCES
L’infrastructure n’a pas pu allouer d’espace pour stocker l’objet resource-range-list.
STATUS_ARRAY_BOUNDS_EXCEEDED
La valeur spécifiée pour le paramètre Index était trop volumineuse.
 

Une vérification des bogues système se produit si le pilote fournit un handle d’objet non valide.

Remarques

La méthode WdfIoResourceRequirementsListInsertIoResList insère la configuration logique que le paramètre IoResList spécifie dans la liste des exigences de ressources que le paramètre RequirementsList spécifie, devant la configuration logique que la valeur Index identifie.

Pour ajouter une configuration logique à la fin d’une liste des besoins en ressources, utilisez WDF_INSERT_AT_END ou la valeur de retour de WdfIoResourceRequirementsListGetCount comme valeur Index. Vous pouvez également utiliser la méthode WdfIoResourceRequirementsListAppendIoResList.

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

Exemples

L’exemple de code suivant montre comment une fonction de rappel EvtDeviceResourceRequirementsQuery peut créer deux configurations logiques vides et les ajouter à une liste des besoins en ressources.

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

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.0
d’en-tête wdfresource.h (include Wdf.h)
bibliothèque Wdf01000.sys (voir Versioning de la bibliothèque Framework.)
IRQL <=DISPATCH_LEVEL
règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList