struktur SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG (sercx.h)
Struktur SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG berisi informasi yang digunakan ekstensi kerangka kerja serial (SerCx2) versi 2 untuk mengonfigurasi objek transmisi DMA sistem baru.
Sintaks
typedef struct _SERCX2_SYSTEM_DMA_TRANSMIT_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_TRANSMIT_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaTransmitInitializeTransaction;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CLEANUP_TRANSACTION EvtSerCx2SystemDmaTransmitCleanupTransaction;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL EvtSerCx2SystemDmaTransmitConfigureDmaChannel;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_DRAIN_FIFO EvtSerCx2SystemDmaTransmitDrainFifo;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO EvtSerCx2SystemDmaTransmitCancelDrainFifo;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO EvtSerCx2SystemDmaTransmitPurgeFifo;
} SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG, *PSERCX2_SYSTEM_DMA_TRANSMIT_CONFIG;
Anggota
Size
Ukuran, dalam byte, dari struktur ini. Metode SerCx2SystemDmaTransmitCreate 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 tulis (IRP_MJ_WRITE) 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 transmisi DMA sistem. Jika panjang buffer dalam permintaan tulis kurang dari panjang minimum ini, SerCx2 menggunakan I/O (PIO) terprogram untuk transaksi.
DmaAlignment
Persyaratan penyelarasan DMA. Menentukan bagaimana alamat awal transfer dalam transaksi transmisi 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 transmisi DMA sistem.
DmaWidth
Lebar pendaftaran data di alamat yang ditentukan oleh DeviceAddress. Nilai yang mungkin adalah Width8Bits, Width16Bits, Width32Bits, dan Width64Bits.
DeviceAddress
Alamat perangkat yang diterjemahkan tempat pengontrol DMA mentransfer data akan dikirimkan. 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 digunakan untuk mengirimkan transaksi. Driver pengontrol serial mendapatkan struktur ini dari daftar sumber daya mentah yang diterimanya di panggilan balik EvtDevicePrepareHardware yang memulai pengontrol serial.
MinimumTransferUnitOverride
Nilai ambil alih 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 tentang unit transfer minimum default, lihat DMA_ADAPTER_INFO_V1.
Exclusive
Apakah akan menggunakan transaksi transmisi DMA sistem secara eksklusif untuk menangani permintaan tulis (IRP_MJ_WRITE). Atur ke TRUE untuk menunjukkan bahwa permintaan tulis harus menggunakan transaksi transmisi DMA sistem secara eksklusif. Atur ke FALSE untuk menunjukkan bahwa permintaan tulis dapat menggunakan kombinasi transaksi transmisi DMA sistem dan transaksi pengiriman PIO.
Atur anggota ini ke TRUE hanya jika unit transfer minimum untuk transaksi transmisi DMA sistem adalah satu byte, panjang transaksi minimum adalah satu byte, dan buffer tulis untuk transaksi dapat dimulai pada batas byte apa pun dalam memori.
Jika EksklusifTRUE, anggota MinimumTransferUnitOverride, Alignment, dan MinimumTransactionLength harus nol.
EvtSerCx2SystemDmaTransmitInitializeTransaction
Penunjuk ke fungsi callbackcallback peristiwa EvtSerCx2SystemDmaTransmitInitializeTransaction yang diimplementasikan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi.
EvtSerCx2SystemDmaTransmitCleanupTransaction
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitCleanupTransaction yang diimplementasikan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi.
EvtSerCx2SystemDmaTransmitConfigureDmaChannel
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitConfigureDmaChannel yang diimplementasikan driver. Anggota ini bersifat opsional dan dapat diatur ke NULL untuk menunjukkan bahwa driver tidak mengimplementasikan fungsi.
EvtSerCx2SystemDmaTransmitDrainFifo
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitDrainFifo 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 EvtSerCx2SystemDmaTransmitCancelDrainFifo dan EvtSerCx2SystemDmaTransmitPurgeFifo .
EvtSerCx2SystemDmaTransmitCancelDrainFifo
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitCancelDrainFifo 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 EvtSerCx2SystemDmaTransmitDrainFifo dan EvtSerCx2SystemDmaTransmitPurgeFifo .
EvtSerCx2SystemDmaTransmitPurgeFifo
Penunjuk ke fungsi panggilan balik peristiwa EvtSerCx2SystemDmaTransmitPurgeFifo 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 EvtSerCx2SystemDmaTransmitDrainFifo dan EvtSerCx2SystemDmaTransmitCancelDrainFifo .
Keterangan
Metode SerCx2SystemDmaTransmitCreate menerima pointer ke struktur SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG sebagai parameter input. Sebelum memanggil SerCx2SystemDmaTransmitCreate, panggil fungsi SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT untuk menginisialisasi struktur ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung dimulai dengan Windows 8.1. |
Header | sercx.h |
Lihat juga
EvtSerCx2SystemDmaTransmitCancelDrainFifo
EvtSerCx2SystemDmaTransmitCleanupTransaction
EvtSerCx2SystemDmaTransmitConfigureDmaChannel
EvtSerCx2SystemDmaTransmitDrainFifo
EvtSerCx2SystemDmaTransmitInitializeTransaction
EvtSerCx2SystemDmaTransmitPurgeFifo
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