Bagikan melalui


EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY fungsi panggilan balik (wdfchildlist.h)

[Berlaku untuk KMDF saja]

Fungsi panggilan balik peristiwa EvtChildListIdentificationDescriptionCopy driver menyalin deskripsi identifikasi anak dari satu lokasi tertentu ke lokasi lain.

Sintaks

EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY EvtWdfChildListIdentificationDescriptionCopy;

void EvtWdfChildListIdentificationDescriptionCopy(
  [in]  WDFCHILDLIST ChildList,
  [in]  PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SourceIdentificationDescription,
  [out] PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription
)
{...}

Parameter

[in] ChildList

Handel ke objek daftar turunan kerangka kerja.

[in] SourceIdentificationDescription

Penunjuk ke struktur WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER yang mengidentifikasi lokasi sumber deskripsi identifikasi anak.

[out] DestinationIdentificationDescription

Penunjuk ke struktur WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER yang mengidentifikasi lokasi tujuan deskripsi identifikasi anak.

Nilai kembali

Tidak ada

Keterangan

Jika driver bus menggunakan enumerasi dinamis, driver dapat mendaftarkan fungsi panggilan balik EvtChildListIdentificationDescriptionCopy dengan memanggil WdfFdoInitSetDefaultChildListConfig atau WdfChildListCreate.

Kerangka kerja menyalin informasi dari satu deskripsi identifikasi yang disediakan driver ke deskripsi lain ketika perlu memperbarui deskripsi yang ada dengan informasi baru, atau ketika perlu meneruskan konten deskripsi identifikasi ke driver.

Fungsi panggilan balik EvtChildListIdentificationDescriptionCopy harus menyalin konten deskripsi sumber ke deskripsi tujuan. Driver harus menyediakan fungsi panggilan balik ini jika kerangka kerja tidak dapat memanggil RtlCopyMemory untuk menyalin deskripsi identifikasi. (Kerangka kerja tidak dapat memanggil RtlCopyMemory jika deskripsi berisi pointer ke memori tambahan.)

Jika driver Anda tidak menyediakan fungsi panggilan balik EvtChildListIdentificationDescriptionCopy , kerangka kerja menyalin deskripsi identifikasi dengan memanggil RtlCopyMemory.

Langkah-langkah berikut menjelaskan kemungkinan skenario:

  1. Driver yang melintasi daftar anak memanggil WdfChildListRetrieveNextDevice. Driver menyediakan struktur WDF_CHILD_RETRIEVE_INFO sehingga dapat menerima deskripsi identifikasi perangkat anak.
  2. Kerangka kerja memanggil fungsi panggilan balik EvtChildListIdentificationDescriptionCopy (jika ada) atau RtlCopyMemory untuk menyalin deskripsi identifikasi perangkat. Sumber operasi salin adalah salinan internal kerangka kerja dari deskripsi. Tujuannya adalah memori yang dialokasikan dan diidentifikasi driver dalam struktur WDF_CHILD_RETRIEVE_INFO.
Kerangka kerja dapat menggunakan RtlCopyMemory untuk menyalin deskripsi identifikasi, jika deskripsi terdiri dari satu struktur dengan ukuran yang telah ditentukan sebelumnya yang ditentukan oleh anggota IdentificationDescriptionSize dari struktur WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER . Namun, terkadang deskripsi juga harus berisi informasi tambahan yang disimpan dalam memori yang dialokasikan secara dinamis. Dalam hal ini, Anda biasanya akan menentukan struktur deskripsi sehingga anggota menunjuk ke memori yang dialokasikan secara dinamis, dan driver Anda harus menyediakan fungsi panggilan balik EvtChildListIdentificationDescriptionCopy . Fungsi panggilan balik harus melakukan hal berikut:
  1. Dalam struktur SourceIdentificationDescription dan DestinationIdentificationDescription fungsi panggilan balik, temukan penunjuk ke memori yang dialokasikan secara dinamis.
  2. Salin memori yang dialokasikan secara dinamis dari sumber ke tujuan, menggunakan pointer.
  3. Salin anggota struktur lain dari struktur SourceIdentificationDescription fungsi panggilan balik ke struktur DestinationIdentificationDescription fungsi panggilan balik.
Satu-satunya metode objek daftar anak kerangka kerja yang dapat dipanggil oleh fungsi panggilan balik EvtChildListIdentificationDescriptionCopy driver adalah WdfChildListGetDevice.

Kerangka kerja memperoleh kunci objek daftar anak internal sebelum memanggil fungsi panggilan balik EvtChildListIdentificationDescriptionCopy . Fungsi panggilan balik hanya boleh melakukan operasi yang terkait dengan operasi salin, seperti memanggil metode objek memori kerangka kerja dan mengakses ruang konteks objek. Ini tidak boleh memanggil metode yang mengakses driver lain.

Jika driver Anda menyediakan fungsi panggilan balik EvtChildListIdentificationDescriptionCopy , mungkin juga memerlukan fungsi panggilan balik EvtChildListIdentificationDescriptionDuplicate, EvtChildListIdentificationDescriptionCompare, dan EvtChildListIdentificationDescriptionCleanup .

Untuk informasi selengkapnya tentang enumerasi dinamis, lihat Menghitung Perangkat di Bus.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfchildlist.h (termasuk Wdf.h)
IRQL <= DISPATCH_LEVEL

Lihat juga

EvtChildListIdentificationDescriptionCleanup

EvtChildListIdentificationDescriptionCompare

EvtChildListIdentificationDescriptionDuplicate

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER

WdfChildListCreate

WdfChildListGetDevice

WdfFdoInitSetDefaultChildListConfig