struktur SERCX2_SYSTEM_DMA_RECEIVE_CONFIG (sercx.h)
Struktur SERCX2_SYSTEM_DMA_RECEIVE_CONFIG berisi informasi yang digunakan ekstensi kerangka kerja serial (SerCx2) versi 2 untuk mengonfigurasi objek penerimaan DMA sistem baru.
Sintaks
typedef struct _SERCX2_SYSTEM_DMA_RECEIVE_CONFIG {
ULONG Size;
size_t MaximumTransferLength;
size_t MinimumTransactionLength;
ULONG DmaAlignment;
ULONG MaximumScatterGatherFragments;
DMA_WIDTH DmaWidth;
PHYSICAL_ADDRESS DeviceAddress;
PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
ULONG MinimumTransferUnitOverride;
BOOLEAN Exclusive;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaReceiveInitializeTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CLEANUP_TRANSACTION EvtSerCx2SystemDmaReceiveCleanupTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL EvtSerCx2SystemDmaReceiveConfigureDmaChannel;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveEnableNewDataNotification;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveCancelNewDataNotification;
} SERCX2_SYSTEM_DMA_RECEIVE_CONFIG, *PSERCX2_SYSTEM_DMA_RECEIVE_CONFIG;
Anggota
Size
Ukuran, dalam byte, dari struktur ini. Metode SerCx2SystemDmaReceiveCreate menggunakan anggota ini untuk menentukan versi struktur mana yang digunakan pemanggil. Ukuran struktur ini mungkin berubah dalam versi file header Sercx.h yang akan datang.
MaximumTransferLength
Ukuran maksimum default, dalam byte, yang dapat ditangani pengontrol serial dalam satu transfer DMA sistem. Jika ukuran buffer dalam permintaan baca (IRP_MJ_READ) lebih besar dari ukuran maksimum ini, SerCx2 menggunakan beberapa transfer DMA untuk menangani permintaan, dan membatasi setiap transfer ke panjang maksimum.
MinimumTransactionLength
Panjang minimum, dalam byte, dari transaksi yang diterima DMA sistem. Jika panjang buffer dalam permintaan baca kurang dari panjang minimum ini, SerCx2 menggunakan I/O (PIO) terprogram untuk transaksi.
DmaAlignment
Persyaratan penyelarasan DMA. Menentukan bagaimana alamat awal transfer dalam transaksi yang diterima DMA sistem harus diselaraskan dalam memori. Atur anggota ini ke konstanta FILE_XXX_ALIGNMENT yang sesuai dalam file header Wdm.h. Misalnya, FILE_WORD_ALIGNMENT menunjukkan bahwa alamat DMA awal harus diselaraskan ke batas dua byte dalam memori, FILE_LONG_ALIGNMENT menunjukkan bahwa alamat harus diselaraskan dengan batas empat byte, dan sebagainya. SerCx2 tidak mendukung FILE_BYTE_ALIGNMENT. Unit transfer minimum (MTU) adaptor DMA sistem harus lebih besar dari atau sama dengan perataan yang diperlukan. Misalnya, jika MTU adalah empat byte, DmaAlignment harus setidaknya FILE_LONG_ALIGNMENT.
MaximumScatterGatherFragments
Jumlah maksimum fragmen buffer yang dapat ditentukan dalam daftar sebar/kumpulkan untuk transfer DMA dalam transaksi yang diterima DMA sistem.
DmaWidth
Lebar pendaftaran data di alamat yang ditentukan oleh DeviceAddress. Nilai yang mungkin adalah Width8Bits, Width16Bits, Width32Bits, dan Width64Bits.
DeviceAddress
Alamat yang diterjemahkan dari mana pengontrol DMA ditransfer. Untuk informasi selengkapnya, lihat deskripsi anggota DeviceAddress di WDF_DMA_SYSTEM_PROFILE_CONFIG.
DmaDescriptor
Penunjuk ke struktur CM_PARTIAL_RESOURCE_DESCRIPTOR yang menjelaskan sumber daya DMA sistem yang akan digunakan untuk menerima transaksi. Driver pengontrol serial mendapatkan struktur ini dari daftar sumber daya mentah yang diterimanya di panggilan balik EvtDevicePrepareHardware yang memulai pengontrol serial.
MinimumTransferUnitOverride
Nilai penimpaan untuk digunakan sebagai pengganti unit transfer minimum default. Jumlah byte yang ditentukan oleh elemen dalam daftar sebar/kumpulkan harus berupa kelipatan bilangan bulat dari unit transfer minimum. Nilai nol menunjukkan bahwa unit transfer minimum default harus digunakan. Untuk informasi selengkapnya, lihat deskripsi anggota MinimumTransferUnit di DMA_ADAPTER_INFO_V1.
Exclusive
Apakah akan menggunakan transaksi yang diterima DMA sistem secara eksklusif untuk menangani permintaan tulis (IRP_MJ_READ). Atur ke TRUE untuk menunjukkan bahwa permintaan baca harus menggunakan transaksi yang diterima DMA sistem secara eksklusif. Atur ke FALSE untuk menunjukkan bahwa permintaan baca dapat menggunakan kombinasi transaksi penerimaan DMA sistem dan transaksi penerima PIO.
Atur anggota ini ke TRUE hanya jika unit transfer minimum untuk transaksi yang diterima DMA sistem adalah satu byte, panjang transaksi minimum adalah satu byte, dan buffer baca untuk transaksi dapat dimulai pada batas byte apa pun dalam memori.
Jika EksklusifTRUE, anggota MinimumTransferUnitOverride, DmaAlignment, dan MinimumTransactionLength harus nol.
Terlepas dari nilai anggota ini, transaksi yang diterima PIO digunakan untuk menyimpan data yang belum dibaca dalam FIFO penerima sebelum pengontrol serial keluar dari status daya perangkat D0 untuk memasuki status daya rendah.
EvtSerCx2SystemDmaReceiveInitializeTransaction
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaReceiveInitializeTransaction yang diterapkan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi.
EvtSerCx2SystemDmaReceiveCleanupTransaction
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaReceiveCleanupTransaction yang diterapkan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi.
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaReceiveConfigureDmaChannel yang diimplementasikan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi.
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaReceiveEnableNewDataNotification yang diimplementasikan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi. Namun, driver yang mengimplementasikan fungsi ini juga harus menerapkan fungsi EvtSerCx2SystemDmaReceiveCancelNewDataNotification .
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaReceiveCancelNewDataNotification yang diterapkan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi. Namun, driver yang mengimplementasikan fungsi ini juga harus mengimplementasikan fungsi EvtSerCx2SystemDmaReceiveEnableNewDataNotification .
Keterangan
Metode SerCx2SystemDmaReceiveCreate menerima penunjuk ke struktur SERCX2_SYSTEM_DMA_RECEIVE_CONFIG sebagai parameter input. Sebelum memanggil SerCx2SystemDmaReceiveCreate, panggil fungsi SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT atau SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT_NEW_DATA_NOTIFICATION untuk menginisialisasi struktur ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung dimulai dengan Windows 8.1. |
Header | sercx.h |
Lihat juga
CM_PARTIAL_RESOURCE_DESCRIPTOR
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
EvtSerCx2SystemDmaReceiveCleanupTransaction
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
EvtSerCx2SystemDmaReceiveInitializeTransaction
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT
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