Partager via


WdfIoResourceListAppendDescriptor, fonction (wdfresource.h)

[S’applique uniquement à KMDF]

La méthode WdfIoResourceListAppendDescriptor ajoute un descripteur de ressource à la fin de la configuration logique d’une liste des exigences de ressources.

Syntaxe

NTSTATUS WdfIoResourceListAppendDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

Paramètres

[in] ResourceList

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] Descriptor

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

Valeur de retour

WdfIoResourceListAppendDescriptor 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
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 resourceList .
STATUS_INSUFFICIENT_RESOURCES
L’infrastructure n’a pas pu allouer d’espace pour stocker le descripteur.
 

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

Remarques

L’infrastructure copie le contenu de la structure IO_RESOURCE_DESCRIPTOR que le descripteur paramètre pointe vers le stockage interne, de sorte que la routine de pilote qui appelle WdfIoResourceListAppendDescriptor peut allouer la structure localement. Une fois que le pilote appelle WdfIoResourceListAppendDescriptor, le pilote peut réutiliser la structure IO_RESOURCE_DESCRIPTOR.

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

Exemples

L’exemple de code suivant crée une configuration logique vide et l’ajoute à une liste des besoins en ressources. Ensuite, l’exemple initialise un descripteur de ressource et ajoute le descripteur à la configuration logique.

IO_RESOURCE_DESCRIPTOR  descriptor;
NTSTATUS  status;
WDFIORESLIST  logConfig;

status = WdfIoResourceListCreate(
                                 RequirementsList,
                                 WDF_NO_OBJECT_ATTRIBUTES,
                                 &logConfig
                                 );
if (!NT_SUCCESS(status)) {
    return status;
}

status = WdfIoResourceRequirementsListAppendIoResList(
                                                      RequirementsList,
                                                      logConfig
                                                      );
if (!NT_SUCCESS(status)) {
    return status;
}

RtlZeroMemory(
              &descriptor,
              sizeof(descriptor)
              );

descriptor.Option = 0;
descriptor.Type = CmResourceTypePort;
descriptor.ShareDisposition = CmResourceShareDeviceExclusive;
descriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
descriptor.u.Port.Length = 1;
descriptor.u.Port.Alignment = 0x01;
descriptor.u.Port.MinimumAddress.QuadPart = 0;
descriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;

status = WdfIoResourceListAppendDescriptor(
                                           logConfig,
                                           &descriptor
                                           );

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

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListCreate

WdfIoResourceListInsertDescriptor