Partager via


WdfCmResourceListInsertDescriptor, fonction (wdfresource.h)

[S’applique à KMDF uniquement]

La méthode WdfCmResourceListInsertDescriptor insère un descripteur de ressources dans une liste de ressources spécifiée.

Syntaxe

NTSTATUS WdfCmResourceListInsertDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                           Index
);

Paramètres

[in] List

Handle d’un objet de liste de ressources d’infrastructure qui représente une liste de ressources matérielles pour un appareil.

[in] Descriptor

Pointeur vers une structure CM_PARTIAL_RESOURCE_DESCRIPTOR qui décrit une ressource matérielle.

[in] Index

Valeur de base zéro utilisée comme index dans la configuration logique spécifiée par List . Pour ajouter un descripteur de ressources à la fin de la liste de ressources, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfCmResourceListGetCount.

Valeur retournée

WdfCmResourceListInsertDescriptor 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
Un paramètre non valide a été spécifié.
STATUS_ACCESS_DENIED
Le pilote n’a pas été autorisé à ajouter des descripteurs à la configuration logique spécifiée par le paramètre List . Par exemple, le pilote n’a pas pu modifier la configuration logique que sa fonction de rappel EvtDevicePrepareHardware ou EvtDeviceReleaseHardware a reçue.
STATUS_INSUFFICIENT_RESOURCES
L’infrastructure n’a pas pu allouer d’espace pour stocker le descripteur vers lequel pointe le paramètre Descriptor .
STATUS_ARRAY_BOUNDS_EXCEEDED
La valeur spécifiée par 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 WdfCmResourceListInsertDescriptor insère le descripteur de ressource spécifié par Descriptor dans la liste de ressources spécifiée par List , devant le descripteur de ressources identifié par la valeur d’index .

Pour ajouter un descripteur de ressources à la fin d’une liste de ressources, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfCmResourceListGetCount comme valeur d’index . Vous pouvez également utiliser la méthode WdfCmResourceListAppendDescriptor .

L’infrastructure copie le contenu de la structure CM_PARTIAL_RESOURCE_DESCRIPTOR dans le stockage interne, de sorte que la routine de pilote qui appelle WdfCmResourceListInsertDescriptor peut allouer la structure localement. Une fois que le pilote a appelé WdfCmResourceListInsertDescriptor, il peut réutiliser la structure CM_PARTIAL_RESOURCE_DESCRIPTOR.

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

Exemples

L’exemple de code suivant ajoute un descripteur de ressources à la fin de la liste de ressources qu’une fonction de rappel EvtDeviceResourcesQuery reçoit.

NTSTATUS
PdoEvtDeviceResourcesQuery(
    IN WDFDEVICE  Device,
    IN WDFCMRESLIST  Resources
    )
{
    CM_PARTIAL_RESOURCE_DESCRIPTOR newDescriptor;
...
    newDescriptor.Type = CmResourceTypePort;
    newDescriptor.ShareDisposition = CmResourceShareDeviceExclusive;
    newDescriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
    newDescriptor.u.Port.Length = 1;
    newDescriptor.u.Port.Start = 0;

    status = WdfCmResourceListInsertDescriptor(
                                               Resources,
                                               &newDescriptor,
                                               WDF_INSERT_AT_END
                                               );
...

}

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

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListAppendDescriptor