struktur PERF_CONFIGURATION_DATA (storport.h)
Struktur PERF_CONFIGURATION_DATA menjelaskan pengoptimalan performa yang didukung oleh rutinitas StorPortInitializePerfOpts .
Sintaks
typedef struct _PERF_CONFIGURATION_DATA {
ULONG Version;
ULONG Size;
ULONG Flags;
ULONG ConcurrentChannels;
ULONG FirstRedirectionMessageNumber;
ULONG LastRedirectionMessageNumber;
ULONG DeviceNode;
ULONG Reserved;
PGROUP_AFFINITY MessageTargets;
} PERF_CONFIGURATION_DATA, *PPERF_CONFIGURATION_DATA;
Anggota
Version
Nomor versi struktur. Atur anggota ini saat mengkueri dan menginisialisasi pengoptimalan.
Size
Ukuran struktur, diatur ke sizeof(PERF_CONFIGURATION_DATA).
Flags
Bitwise-OR dari bendera yang didukung. Saat ini, bendera berikut didukung:
Bendera | Makna |
---|---|
STOR_PERF_DPC_REDIRECTION |
Bendera ini digunakan untuk menunjukkan bahwa pemrosesan DPC harus tersebar di beberapa CPU.
Bendera ini valid ketika Versi diatur ke 2 atau 3. |
STOR_PERF_CONCURRENT_CHANNELS |
Bendera ini digunakan untuk menunjukkan bahwa panggilan bersamaan ke rutinitas HwStorStartIo didukung. Sebelum Windows 8, miniport tidak boleh mengatur bendera ini.
Bendera ini valid ketika Versi diatur ke 2 atau 3. |
STOR_PERF_INTERRUPT_MESSAGE_RANGES |
Bendera ini digunakan untuk menunjukkan bahwa pengalihan interupsi didukung. Saat Anda menggunakan bendera ini, Anda juga harus mengatur bendera STOR_PERF_DPC_REDIRECTION.
Bendera ini valid ketika Versi diatur ke 2 atau 3. |
STOR_PERF_ADV_CONFIG_LOCALITY |
Bendera ini digunakan untuk menunjukkan bahwa Anda harus menggunakan grup dan masker yang berkaitan dengan grup pesan dengan afinitas yang benar. Saat Anda menggunakan bendera ini, Anda juga harus mengatur STOR_PERF_INTERRUPT_MESSAGE_RANGES dan bendera STOR_PERF_DPC_REDIRECTION.
Bendera ini valid ketika Versi diatur ke 3. |
STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO |
Bendera ini digunakan untuk menunjukkan bahwa driver miniport akan menyelesaikan I/Os secara bersamaan dengan pengiriman I/Os baru. Saat Anda menggunakan bendera ini, Anda juga harus mengatur bendera STOR_PERF_DPC_REDIRECTION.
Bendera ini valid ketika Versi diatur ke 3. Lihat keterangan di bawah ini. |
STOR_PERF_DPC_REDIRECTION_CURRENT_CPU |
Bendera ini digunakan untuk menunjukkan bahwa Anda memilih pengalihan DPC (diperlukan) tetapi pilihan pengalihan IO diatur ke CPU yang meminta DPC dan bukan CPU yang berasal dari permintaan IO ke Storport.
Saat Anda menggunakan bendera ini, Anda juga harus mengatur bendera STOR_PERF_DPC_REDIRECTION. Bendera ini valid ketika Versi diatur ke 4. |
STOR_PERF_NO_SGL |
Bendera ini digunakan untuk menunjukkan bahwa miniport tidak memerlukan SGL untuk dibuat oleh driver storport untuk buffer permintaan IO.
Bendera ini valid ketika Versi diatur ke 5. |
ConcurrentChannels
Jumlah panggilan bersamaan ke rutinitas HwStorStartIo yang didukung driver miniport dan perangkat. Anggota ini hanya diakses ketika bendera STOR_PERF_CONCURRENT_CHANNELS telah ditetapkan. Sebelum Windows 8, miniport tidak boleh menetapkan nilai ini.
FirstRedirectionMessageNumber
Ketika anggota Bendera memiliki bendera STOR_PERF_INTERRUPT_MESSAGE_RANGES yang ditetapkan, driver miniport menginisialisasi pengalihan interupsi untuk memulai dengan nomor pesan ini. Anggota ini hanya diakses saat bendera STOR_PERF_INTERRUPT_MESSAGE_RANGES diatur.
LastRedirectionMessageNumber
Ketika anggota Bendera memiliki bendera STOR_PERF_INTERRUPT_MESSAGE_RANGES yang ditetapkan, driver miniport menginisialisasi pengalihan interupsi untuk mengakhiri dengan nomor pesan ini. Anggota ini hanya diakses saat bendera STOR_PERF_INTERRUPT_MESSAGE_RANGES diatur.
DeviceNode
Ketika anggota Bendera memiliki bendera STOR_PERF_ADV_CONFIG_LOCALITY yang ditetapkan, Storport menginisialisasi bidang ini untuk berisi nomor simpul NUMA tempat perangkat driver miniport berada.
Reserved
Dicadangkan untuk penggunaan sistem.
MessageTargets
Saat anggota Bendera memiliki set bendera STOR_PERF_ADV_CONFIG_LOCALITY, Storport menginisialisasi bidang dalam struktur array GROUP_AFFINITY . Struktur ini sesuai dengan pesan pengalihan yang saat ini sedang digunakan. Array itu sendiri berbasis nol, tetapi FirstRedirectionMessageNumber tidak diperlukan untuk menjadi nol. Miniport mengalokasikan array ini dan mengatur MessageTargets untuk mengarahkannya. Driver miniport harus mengalokasikan array GROUP_AFFINITY cukup besar untuk menahan semua masker afinitas yang dikembalikan.
Keterangan
Versi struktur ini saat ini ditentukan oleh STOR_PERF_VERSION. Mengatur Versi ke nilai ini akan memungkinkan Bendera untuk menentukan semua pengoptimalan yang didukung.
Tujuan bendera STOR_PERF_DPC_REDIRECTION adalah untuk memastikan bahwa CPU individu tidak kewalahan dengan pemrosesan DPC. Ketika bendera ini diatur, pemrosesan DPC tersebar di beberapa CPU. Jika STOR_PERF_DPC_REDIRECTION_CURRENT_CPU tidak diatur, StorPort akan mencoba menjadwalkan DPC penyelesaian I/O pada CPU yang sama yang berasal dari I/O.
Biasanya, miniport menyelesaikan permintaan I/O dalam rutinitas HwStorStartIo dan memanggil StorPortNotification dengan jenis pemberitahuan RequestComplete . Untuk memproses I/O dengan cara ini, miniport akan meninggalkan bendera STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO yang diatur dalam anggota Bendera yang memungkinkan Storport untuk menyesuaikan pengalihan DPC.
Untuk informasi tentang mengaktifkan interupsi yang diberi sinyal pesan untuk perangkat, lihat Mengaktifkan Interupsi Message-Signaled di Registri.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | storport.h (termasuk Storport.h) |