Fungsi WdfIoResourceListInsertDescriptor (wdfresource.h)

[Berlaku untuk KMDF saja]

Metode WdfIoResourceListInsertDescriptor menyisipkan deskriptor sumber daya ke dalam konfigurasi logis daftar persyaratan sumber daya.

Sintaks

NTSTATUS WdfIoResourceListInsertDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                   Index
);

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.

[in] Index

Nilai berbasis nol yang digunakan sebagai indeks ke dalam kumpulan deskriptor sumber daya yang sudah berada dalam konfigurasi logis yang ditentukan ResourceList . Untuk menambahkan deskriptor sumber daya ke akhir konfigurasi logis, tentukan WDF_INSERT_AT_END atau nilai pengembalian dari WdfIoResourceListGetCount.

Nilai kembali

WdfIoResourceListInsertDescriptor mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter yang tidak valid ditentukan.
STATUS_ACCESS_DENIED
Driver tidak diizinkan untuk menambahkan deskriptor ke konfigurasi logis.
STATUS_INSUFFICIENT_RESOURCES
Kerangka kerja tidak dapat mengalokasikan ruang untuk menyimpan deskriptor.
STATUS_ARRAY_BOUNDS_EXCEEDED
Nilai yang ditentukan parameter Indeks terlalu besar.
 

Pemeriksaan bug sistem terjadi jika driver memasok handel objek yang tidak valid.

Keterangan

Metode WdfIoResourceListInsertDescriptor menyisipkan deskriptor sumber daya yang ditunjukkan parameter Descriptor ke dalam konfigurasi logis yang ditentukan parameter ResourceList , di depan deskriptor sumber daya yang diidentifikasi nilai Indeks .

Untuk menambahkan deskriptor sumber daya ke akhir konfigurasi logis, tentukan WDF_INSERT_AT_END atau nilai pengembalian dari WdfIoResourceListGetCount untuk nilai Indeks . Atau, gunakan metode WdfIoResourceListAppendDescriptor .

Kerangka kerja menyalin konten struktur IO_RESOURCE_DESCRIPTOR ke dalam penyimpanan internal, sehingga rutinitas driver yang memanggil WdfIoResourceListInsertDescriptor dapat mengalokasikan struktur secara lokal. Setelah driver memanggil WdfIoResourceListInsertDescriptor, driver dapat menggunakan kembali struktur IO_RESOURCE_DESCRIPTOR .

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

Contoh

Contoh kode berikut menginisialisasi deskriptor sumber daya dan menambahkan deskriptor ke akhir konfigurasi logis.

IO_RESOURCE_DESCRIPTOR descriptor;

RtlZeroMemory(&descriptor, sizeof(descriptor));

descriptor.Option = 0;
descriptor.Type = CmResourceTypePort;
descriptor.ShareDisposition = CmResourceShareDeviceExclusive;
descriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
descriptor.u.Port.Length = 1;
descriptor.u.Port.Alignment = 0x01;
descriptor.u.Port.MinimumAddress.QuadPart = 0;
descriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;

status = WdfIoResourceListInsertDescriptor(
                                           logConfig,
                                           &descriptor,
                                           WDF_INSERT_AT_END
                                           );
if (!NT_SUCCESS(status)) {
    return status;
}

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

WdfIoResourceListAppendDescriptor