Freigeben über


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

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListGetCount

WdfIoResourceListGetDescriptor

WdfIoResourceRequirementsListGetCount

WdfIoResourceRequirementsListGetIoResList

WdfIoResourceRequirementsListRemove