WdfIoResourceListInsertDescriptor, fonction (wdfresource.h)

[S’applique à KMDF uniquement]

La méthode WdfIoResourceListInsertDescriptor insère un descripteur de ressources dans la configuration logique d’une liste de ressources requises.

Syntaxe

NTSTATUS WdfIoResourceListInsertDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                   Index
);

Paramètres

[in] ResourceList

Handle vers un objet resource-range-list d’infrastructure 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.

[in] Index

Valeur de base zéro utilisée comme index dans l’ensemble de descripteurs de ressources qui se trouvent déjà dans la configuration logique spécifiée par ResourceList . Pour ajouter un descripteur de ressources à la fin de la configuration logique, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfIoResourceListGetCount.

Valeur retournée

WdfIoResourceListInsertDescriptor 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.
STATUS_INSUFFICIENT_RESOURCES
L’infrastructure n’a pas pu allouer d’espace pour stocker le descripteur.
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 WdfIoResourceListInsertDescriptor insère le descripteur de ressource vers lequel pointe le paramètre Descriptor dans la configuration logique spécifiée par le paramètre ResourceList , devant le descripteur de ressources identifié par la valeur Index .

Pour ajouter un descripteur de ressources à la fin d’une configuration logique, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfIoResourceListGetCount pour la valeur Index . Vous pouvez également utiliser la méthode WdfIoResourceListAppendDescriptor .

L’infrastructure copie le contenu de la structure IO_RESOURCE_DESCRIPTOR dans le stockage interne, de sorte que la routine de pilote qui appelle WdfIoResourceListInsertDescriptor peut allouer la structure localement. Une fois que le pilote a appelé WdfIoResourceListInsertDescriptor, 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 les pilotes Framework-Based.

Exemples

L’exemple de code suivant initialise un descripteur de ressource et ajoute le descripteur à la fin d’une configuration logique.

IO_RESOURCE_DESCRIPTOR descriptor;

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 = WdfIoResourceListInsertDescriptor(
                                           logConfig,
                                           &descriptor,
                                           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

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListAppendDescriptor