WdfIoResourceListRemoveByDescriptor-Funktion (wdfresource.h)
[Gilt nur für KMDF]
Die WdfIoResourceListRemoveByDescriptor-Methode entfernt einen Ressourcendeskriptor aus der logischen Konfiguration einer Ressourcenanforderungsliste.
Syntax
void WdfIoResourceListRemoveByDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor
);
Parameter
[in] ResourceList
Ein Handle für ein Framework resource-range-list-Objekt, das eine logische Konfiguration von Hardwareressourcen für ein Gerät darstellt.
[in] Descriptor
Ein Zeiger auf eine IO_RESOURCE_DESCRIPTOR Struktur, die eine Hardwareressource beschreibt.
Rückgabewert
Keine
Bemerkungen
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Die WdfIoResourceListRemoveByDescriptor-Methode entfernt den Ressourcendeskriptor, der dem Descriptor-Parameter entspricht. Um eine Übereinstimmung zu finden, vergleicht die Methode den angegebenen Ressourcendeskriptor mit den Ressourcendeskriptoren in der logischen Konfiguration, Byte für Byte.
Wenn WdfIoResourceListRemoveByDescriptor den Ressourcendeskriptor entfernt, der über den Indexwert n verfügt, ändert sich der Indexwert des nächsten Ressourcendeskriptors von n+1 auf n.
Weitere Informationen zu Ressourcenanforderungenlisten und logischen Konfigurationen finden Sie unter Hardwareressourcen für Framework-Based Treiber.
Beispiele
Das folgende Codebeispiel durchsucht eine logische Konfiguration nach einem Ressourcendeskriptor, der eine angegebene Portadresse enthält, und entfernt diesen Ressourcendeskriptor.
IO_RESOURCE_DESCRIPTOR descriptor;
ULONG resCount, j;
//
// 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, and remove the descriptor.
//
if (descriptor->Type == CmResourceTypePort) {
if ((descriptor->u.port.MinimumAddress) == PORT_RANGE_A) {
WdfIoResourceListRemoveByDescriptor(
Reslist,
descriptor
);
break;
}
}
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfresource.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionierung der Frameworkbibliothek.) |
IRQL | <=DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |