WdfCmResourceListInsertDescriptor, fonction (wdfresource.h)
[S’applique uniquement à KMDF]
La méthode WdfCmResourceListInsertDescriptor insère un descripteur de ressource 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 vers un objet de liste de ressources framework 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 qui List spécifie. Pour ajouter un descripteur de ressource à la fin de la liste des ressources, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfCmResourceListGetCount.
Valeur de retour
WdfCmResourceListInsertDescriptor 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 spécifiée par le paramètre List spécifié. Par exemple, le pilote n’a pas pu modifier la configuration logique que son EvtDevicePrepareHardware ou EvtDeviceReleaseHardware fonction de rappel reçue. |
|
L’infrastructure n’a pas pu allouer d’espace pour stocker le descripteur vers lequel pointe le descripteur paramètre. |
|
La valeur que le paramètre index spécifié était trop volumineux. |
Une vérification des bogues système se produit si le pilote fournit un handle d’objet non valide.
Remarques
La méthode WdfCmResourceListInsertDescriptor insère le descripteur de ressource que descripteur spécifie dans la liste des ressources que List spécifie, devant le descripteur de ressource qui Index valeur identifie.
Pour ajouter un descripteur de ressource à la fin d’une liste de ressources, spécifiez WDF_INSERT_AT_END ou la valeur de retour de WdfCmResourceListGetCount comme valeur 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 appelle 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 Framework-Based Pilotes.
Exemples
L’exemple de code suivant ajoute un descripteur de ressource à la fin de la liste des ressources qu’une EvtDeviceResourcesQuery fonction de rappel 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
);
...
}
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) |