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-Ressourcenanforderungen-Listenobjekt, das die Ressourcenanforderungensliste eines Geräts darstellt.

[in] IoResList

Ein Handle zu einem Framework-Ressourcenbereichslistenobjekt, das die logische Konfiguration darstellt, die aus der Liste der Ressourcenanforderungen entfernt werden soll, die RequirementsList- angibt.

Rückgabewert

Nichts

Bemerkungen

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Die WdfIoResourceRequirementsListRemoveByIoResList Methode entfernt die logische Konfiguration, die dem Handle zugeordnet ist, den der IoResList--Parameter angibt.

Wenn WdfIoResourceRequirementsListRemoveByIoResList die logische Konfiguration entfernt, die den Indexwert naufweist, ändert sich der Indexwert der nächsten logischen Konfiguration von n+1 zu n.

Weitere Informationen zu Ressourcenanforderungenslisten finden Sie unter Hardwareressourcen für Framework-Based Drivers.

Beispiele

Im folgenden Codebeispiel werden die logischen Konfigurationen in der Ressourcenanforderungensliste eines Geräts durchsucht, um eine Konfiguration zu suchen, die eine bestimmte Portadresse enthält. Wenn das Beispiel diese Konfiguration findet, 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- Universal
Minimale KMDF-Version 1.0
Header- wdfresource.h (include Wdf.h)
Library Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL- <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListGetCount-

WdfIoResourceListGetDescriptor-

WdfIoResourceRequirementsListGetCount

WdfIoResourceRequirementsListGetIoResList

WdfIoResourceRequirementsListRemove