Fungsi WdfIoResourceRequirementsListRemoveByIoResList (wdfresource.h)

[Berlaku untuk KMDF saja]

Metode WdfIoResourceRequirementsListRemoveByIoResList menghapus konfigurasi logis dari daftar persyaratan sumber daya.

Sintaks

void WdfIoResourceRequirementsListRemoveByIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList
);

Parameter

[in] RequirementsList

Handel ke objek daftar persyaratan sumber daya kerangka kerja yang mewakili daftar persyaratan sumber daya perangkat.

[in] IoResList

Handel ke objek daftar rentang sumber daya kerangka kerja yang mewakili konfigurasi logis yang akan dihapus dari daftar persyaratan sumber daya yang ditentukan RequirementsList .

Nilai kembali

Tidak ada

Keterangan

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Metode WdfIoResourceRequirementsListRemoveByIoResList menghapus konfigurasi logis yang terkait dengan handel yang ditentukan parameter IoResList .

Ketika WdfIoResourceRequirementsListRemoveByIoResList menghapus konfigurasi logis yang memiliki nilai indeks n, nilai indeks konfigurasi logis berikutnya berubah dari n+1 ke n.

Untuk informasi selengkapnya tentang daftar persyaratan sumber daya, lihat Sumber Daya Perangkat Keras untuk Driver Framework-Based.

Contoh

Contoh kode berikut mencari konfigurasi logis dalam daftar persyaratan sumber daya perangkat untuk menemukan konfigurasi yang berisi alamat port tertentu. Jika contoh menemukan konfigurasi tersebut, konfigurasi akan dihapus.

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;
            }
        }
    }
...
}

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfresource.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL <=DISPATCH_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Lihat juga

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListGetCount

WdfIoResourceListGetDescriptor

WdfIoResourceRequirementsListGetCount

WdfIoResourceRequirementsListGetIoResList

WdfIoResourceRequirementsListRemove