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 |
---|---|
|
Parameter yang tidak valid ditentukan. |
|
Driver tidak diizinkan untuk menambahkan deskriptor ke konfigurasi logis yang ditentukan parameter ResourceList . |
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk