Fungsi WdfCmResourceListInsertDescriptor (wdfresource.h)

[Hanya berlaku untuk KMDF]

Metode WdfCmResourceListInsertDescriptor menyisipkan deskriptor sumber daya ke dalam daftar sumber daya tertentu.

Sintaks

NTSTATUS WdfCmResourceListInsertDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                           Index
);

Parameter

[in] List

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

[in] Descriptor

Penunjuk ke struktur CM_PARTIAL_RESOURCE_DESCRIPTOR yang menjelaskan sumber daya perangkat keras.

[in] Index

Nilai berbasis nol yang digunakan sebagai indeks ke dalam konfigurasi logis yang ditentukan Daftar . Untuk menambahkan deskriptor sumber daya ke akhir daftar sumber daya, tentukan WDF_INSERT_AT_END atau nilai yang dikembalikan dari WdfCmResourceListGetCount.

Nilai kembali

WdfCmResourceListInsertDescriptor 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 yang ditentukan parameter Daftar . Misalnya, driver tidak dapat mengubah konfigurasi logis yang diterima fungsi panggilan balik EvtDevicePrepareHardware atau EvtDeviceReleaseHardware .
STATUS_INSUFFICIENT_RESOURCES
Kerangka kerja tidak dapat mengalokasikan ruang untuk menyimpan deskriptor yang ditunjuk oleh parameter 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 WdfCmResourceListInsertDescriptor menyisipkan deskriptor sumber daya yang ditentukan Deskriptor ke dalam daftar sumber daya yang ditentukan Daftar , di depan deskriptor sumber daya yang diidentifikasi nilai Indeks .

Untuk menambahkan deskriptor sumber daya ke akhir daftar sumber daya, tentukan WDF_INSERT_AT_END atau nilai yang dikembalikan dari WdfCmResourceListGetCount sebagai nilai Indeks . Atau, gunakan metode WdfCmResourceListAppendDescriptor .

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

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

Contoh

Contoh kode berikut menambahkan deskriptor sumber daya ke akhir daftar sumber daya yang diterima fungsi panggilan balik EvtDeviceResourcesQuery .

NTSTATUS
PdoEvtDeviceResourcesQuery(
    IN WDFDEVICE  Device,
    IN WDFCMRESLIST  Resources
    )
{
    CM_PARTIAL_RESOURCE_DESCRIPTOR newDescriptor;
...
    newDescriptor.Type = CmResourceTypePort;
    newDescriptor.ShareDisposition = CmResourceShareDeviceExclusive;
    newDescriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
    newDescriptor.u.Port.Length = 1;
    newDescriptor.u.Port.Start = 0;

    status = WdfCmResourceListInsertDescriptor(
                                               Resources,
                                               &newDescriptor,
                                               WDF_INSERT_AT_END
                                               );
...

}

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

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListAppendDescriptor