WdfIoResourceRequirementsListRemoveByIoResList-Funktion (wdfresource.h)
[Gilt nur für KMDF]
Die WdfIoResourceRequirementsListRemoveByIoResList-Methode entfernt eine logische Konfiguration aus einer Ressourcenanforderungsliste.
Syntax
void WdfIoResourceRequirementsListRemoveByIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList
);
Parameter
[in] RequirementsList
Ein Handle für ein Framework resource-requirements-list-Objekt, das die Ressourcenanforderungsliste eines Geräts darstellt.
[in] IoResList
Ein Handle für ein Framework resource-range-list-Objekt, das die logische Konfiguration darstellt, die aus der Ressourcenanforderungsliste entfernt werden soll, die RequirementsList angibt.
Rückgabewert
Keine
Bemerkungen
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Die WdfIoResourceRequirementsListRemoveByIoResList-Methode entfernt die logische Konfiguration, die dem Handle zugeordnet ist, das der IoResList-Parameter angibt.
Wenn WdfIoResourceRequirementsListRemoveByIoResList die logische Konfiguration entfernt, die den Indexwert n aufweist, ändert sich der Indexwert der nächsten logischen Konfiguration von n+1 in n.
Weitere Informationen zu Ressourcenanforderungenlisten finden Sie unter Hardwareressourcen für Framework-Based Treiber.
Beispiele
Das folgende Codebeispiel durchsucht die logischen Konfigurationen in der Liste der Ressourcenanforderungen eines Geräts, um eine Konfiguration zu finden, die eine bestimmte Portadresse enthält. Wenn im Beispiel diese Konfiguration gefunden wird, wird die Konfiguration entfernt.
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;
}
}
}
...
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfresource.h (include Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).) |
IRQL | <=DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
Weitere Informationen
WdfIoResourceListGetDescriptor
WdfIoResourceRequirementsListGetCount