Freigeben über


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)

Weitere Informationen

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListRemove