Fungsi WdfIoResourceListAppendDescriptor (wdfresource.h)

[Berlaku untuk KMDF saja]

Metode WdfIoResourceListAppendDescriptor menambahkan deskriptor sumber daya ke akhir konfigurasi logis daftar persyaratan sumber daya.

Sintaks

NTSTATUS WdfIoResourceListAppendDescriptor(
  [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

WdfIoResourceListAppendDescriptor 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 ResourceList .
STATUS_INSUFFICIENT_RESOURCES
Kerangka kerja tidak dapat mengalokasikan ruang untuk menyimpan deskriptor.
 

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

Keterangan

Kerangka kerja menyalin konten struktur IO_RESOURCE_DESCRIPTOR yang ditunjukkan parameter Deskriptor ke penyimpanan internal, sehingga rutinitas driver yang memanggil WdfIoResourceListAppendDescriptor dapat mengalokasikan struktur secara lokal. Setelah driver memanggil WdfIoResourceListAppendDescriptor, 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 membuat konfigurasi logis kosong dan menambahkannya ke daftar persyaratan sumber daya. Kemudian, contoh menginisialisasi deskriptor sumber daya dan menambahkan deskriptor ke konfigurasi logis.

IO_RESOURCE_DESCRIPTOR  descriptor;
NTSTATUS  status;
WDFIORESLIST  logConfig;

status = WdfIoResourceListCreate(
                                 RequirementsList,
                                 WDF_NO_OBJECT_ATTRIBUTES,
                                 &logConfig
                                 );
if (!NT_SUCCESS(status)) {
    return status;
}

status = WdfIoResourceRequirementsListAppendIoResList(
                                                      RequirementsList,
                                                      logConfig
                                                      );
if (!NT_SUCCESS(status)) {
    return status;
}

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 = WdfIoResourceListAppendDescriptor(
                                           logConfig,
                                           &descriptor
                                           );

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

WdfIoResourceListCreate

WdfIoResourceListInsertDescriptor