Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[S’applique uniquement à KMDF]
La méthode WdfIoResourceListInsertDescriptor insère un descripteur de ressource dans la configuration logique d’une liste de ressources.
Syntaxe
NTSTATUS WdfIoResourceListInsertDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor,
[in] ULONG Index
);
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.
[in] Index
Valeur de base zéro utilisée comme index dans l’ensemble de descripteurs de ressources déjà dans la configuration logique qui ResourceList spécifie. Pour ajouter un descripteur de ressource à la fin de la configuration logique, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfIoResourceListGetCount.
Valeur de retour
WdfIoResourceListInsertDescriptor retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
|
Un paramètre non valide a été spécifié. |
|
Le pilote n’a pas été autorisé à ajouter des descripteurs à la configuration logique. |
|
L’infrastructure n’a pas pu allouer d’espace pour stocker le descripteur. |
|
La valeur spécifiée par le paramètre Index était trop grande. |
Une vérification des bogues système 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 le descripteur pointe vers la configuration logique que le paramètre ResourceList spécifie, devant le descripteur de ressource que la valeur Index identifie.
Pour ajouter un descripteur de ressource à 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 appelle 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 Framework-Based Pilotes.
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;
}
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) |