Fungsi WdfIoResourceListRemoveByDescriptor (wdfresource.h)

[Berlaku untuk KMDF saja]

Metode WdfIoResourceListRemoveByDescriptor menghapus deskriptor sumber daya dari konfigurasi logis daftar persyaratan sumber daya.

Sintaks

void WdfIoResourceListRemoveByDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

Parameter

[in] ResourceList

Handel ke objek daftar rentang sumber daya kerangka kerja yang mewakili konfigurasi logis sumber daya perangkat keras untuk perangkat.

[in] Descriptor

Penunjuk ke struktur IO_RESOURCE_DESCRIPTOR yang menjelaskan sumber daya perangkat keras.

Nilai kembali

Tidak ada

Keterangan

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

Metode WdfIoResourceListRemoveByDescriptor menghapus deskriptor sumber daya yang cocok dengan parameter Descriptor . Untuk menemukan kecocokan, metode membandingkan deskriptor sumber daya yang ditentukan dengan deskriptor sumber daya dalam konfigurasi logis, byte untuk byte.

Ketika WdfIoResourceListRemoveByDescriptor menghapus deskriptor sumber daya yang memiliki nilai indeks n, nilai indeks deskriptor sumber daya berikutnya berubah dari n+1 ke n.

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

Contoh

Contoh kode berikut mencari konfigurasi logis untuk deskriptor sumber daya yang berisi alamat port tertentu, dan menghapus deskriptor sumber daya tersebut.

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

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

WdfIoResourceListRemove