WdfIoResourceRequirementsListRemoveByIoResList, fonction (wdfresource.h)
[S’applique à KMDF uniquement]
La méthode WdfIoResourceRequirementsListRemoveByIoResList supprime une configuration logique d’une liste de ressources requises.
Syntaxe
void WdfIoResourceRequirementsListRemoveByIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList
);
Paramètres
[in] RequirementsList
Handle d’un objet resource-requirements-list d’infrastructure qui représente la liste des besoins en ressources d’un appareil.
[in] IoResList
Handle d’un objet resource-range-list d’infrastructure qui représente la configuration logique à supprimer de la liste des exigences de ressources spécifiée par RequirementsList .
Valeur de retour
None
Remarques
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
La méthode WdfIoResourceRequirementsListRemoveByIoResList supprime la configuration logique associée au handle spécifié par le paramètre IoResList .
Lorsque WdfIoResourceRequirementsListRemoveByIoResList supprime la configuration logique qui a la valeur d’index n, la valeur d’index de la configuration logique suivante passe de n+1 à n.
Pour plus d’informations sur les listes de ressources requises, consultez Ressources matérielles pour les pilotes Framework-Based.
Exemples
L’exemple de code suivant recherche les configurations logiques dans la liste des besoins en ressources d’un appareil pour rechercher une configuration qui contient une adresse de port spécifique. Si l’exemple trouve cette configuration, il supprime la configuration.
NTSTATUS
Example_EvtDeviceFilterRemoveResourceRequirements(
IN WDFDEVICE Device,
IN WDFIORESREQLIST RequirementsList
)
{
ULONG i, j, reqCount, resCount;
BOOLEAN descriptorFound = FALSE;
//
// Obtain the number of logical configurations.
//
reqCount = WdfIoResourceRequirementsListGetCount(RequirementsList);
//
// Search each logical configuration.
//
for (i = 0; i < reqCount; i++) {
WDFIORESLIST reslist;
if (descriptorFound) {
break;
}
reslist = WdfIoResourceRequirementsListGetIoResList(RequirementsList, i);
//
// Get the number of resource descriptors that
// are in this logical configuration.
//
resCount = WdfIoResourceListGetCount(reslist);
for (j = 0; j < resCount; j++) {
PIO_RESOURCE_DESCRIPTOR descriptor;
//
// Get the next resource descriptor.
//
descriptor = WdfIoResourceListGetDescriptor(
reslist,
j
);
//
// Stop if this descriptor is the port descriptor
// that we're looking for.
//
if (descriptor->Type == CmResourceTypePort) {
if ((descriptor->u.Port.MinimumAddress) == PORT_RANGE_A) {
WdfIoResourceRequirementsListRemoveByIoResList(
RequirementsList,
reslist
);
descriptorFound = TRUE;
break;
}
}
}
...
}
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
WdfIoResourceListGetDescriptor
WdfIoResourceRequirementsListGetCount