Bagikan melalui


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

DMA_ADAPTER_INFO_V1

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitCleanupTransaction

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitInitializeTransaction

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT

SerCx2SystemDmaTransmitCreate

WdfDmaEnablerSetMaximumScatterGatherElements