Partager via


WdfIoResourceRequirementsListInsertIoResList, fonction (wdfresource.h)

[S’applique à KMDF uniquement]

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

Syntaxe

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

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 vers un objet resource-range-list d’infrastructure 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 qui figurent déjà dans la liste des exigences de ressources spécifiée par RequirementsList . Pour ajouter une configuration à la fin de la liste, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfIoResourceRequirementsListGetCount.

Valeur retournée

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

Code de retour 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 grande.
 

Un bogue système case activée 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 spécifiée par le paramètre RequirementsList , devant la configuration logique que la valeur Index identifie.

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

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 montre comment une fonction de rappel EvtDeviceResourceRequirementsQuery peut créer deux configurations logiques vides et les ajouter à une liste de ressources requises.

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

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

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList