WdfCmResourceListAppendDescriptor, fonction (wdfresource.h)

[S’applique uniquement à KMDF]

La méthode WdfCmResourceListAppendDescriptor ajoute un descripteur de ressources à la fin d’une liste de ressources spécifiée.

Syntaxe

NTSTATUS WdfCmResourceListAppendDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
);

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.

Valeur retournée

WdfCmResourceListAppendDescriptor 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’était pas 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 spécifié par le paramètre Descriptor .
 

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

Remarques

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 WdfCmResourceListAppendDescriptor peut allouer la structure localement. Une fois que le pilote a appelé WdfCmResourceListAppendDescriptor , 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 = WdfCmResourceListAppendDescriptor(
                                               Resources,
                                               &newDescriptor
                                               );
...

}

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 de version 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

WdfCmResourceListInsertDescriptor