Fungsi SpbControllerSetRequestAttributes (spbcx.h)

Metode SpbControllerSetRequestAttributes mengatur atribut objek yang akan digunakan untuk semua objek SPBREQUEST yang dikirimkan ekstensi kerangka kerja SPB (SpbCx) ke driver pengontrol SPB.

Sintaks

void SpbControllerSetRequestAttributes(
  [in] WDFDEVICE              FxDevice,
  [in] PWDF_OBJECT_ATTRIBUTES RequestAttributes
);

Parameter

[in] FxDevice

Handel WDFDEVICE ke objek perangkat yang mewakili pengontrol SPB.

[in] RequestAttributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang dialokasikan penelepon yang berisi atribut untuk objek SPBREQUEST pengontrol SPB.

Nilai kembali

Tidak ada

Keterangan

Selama inisialisasi perangkat, driver pengontrol SPB Anda dapat memanggil metode ini untuk mengatur atribut default untuk objek SPBREQUEST. Setelah itu, SpbCx menetapkan atribut ini ke setiap permintaan I/O yang dikirimkan (atau diteruskan) ke perangkat target di bus.

RequestAttributes menunjuk ke struktur WDF_OBJECT_ATTRIBUTES . Penelepon sebelumnya harus memanggil fungsi WDF_OBJECT_ATTRIBUTES_INIT untuk menginisialisasi struktur ini. Setelah panggilan ini, tetapi sebelum panggilan ke SpbControllerSetRequestAttributes, pemanggil dapat mengubah nilai anggota berikut dari struktur ini:

  • EvtCleanupCallback
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes akan menggunakan nilai-nilai ini sebagai atribut default untuk objek SPBREQUEST. Namun, driver tidak dapat mengubah nilai atribut default yang terkandung dalam anggota ExecutionLevel, SynchronizationScope, dan ParentObject . Anggota ini harus tetap tidak berubah dari nilai yang diinisialisasi oleh fungsi WDF_OBJECT_ATTRIBUTES_INIT .

WDF_OBJECT_ATTRIBUTES_INIT menginisialisasi anggota EvtCleanupCallback dan EvtDestroyCallback ke NULL. Jika Anda mengubah nilai default ini untuk mendaftarkan fungsi panggilan balik EvtCleanupCallback atau EvtDestroyCallback , fungsi ini dipanggil setiap kali permintaan I/O tiba dalam antrean pengontrol SPB, yang dikelola oleh SpbCx. Permintaan I/O seperti itu menyebabkan fungsi EvtCleanupCallback atau EvtDestroyCallback dipanggil bahkan jika SpbCx tidak pernah menyajikan permintaan ke driver pengontrol SPB (karena permintaan dibatalkan setelah tiba dalam antrean tetapi sebelum diteruskan ke driver).

Driver pengontrol SPB harus memanggil spbControllerSetRequestAttributes sebelum menerapkan objek perangkat—yaitu, sebelum kembali dari panggilan balik EvtDriverDeviceAdd atau menambahkan PDO ke daftar anak pengontrol. Daftar anak mewakili perangkat yang dilampirkan ke bus. Untuk informasi selengkapnya, lihat Menghitung Perangkat di Bus.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 8.
Target Platform Universal
Header spbcx.h
Pustaka Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Lihat juga

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT