Bagikan melalui


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

EvtDevicePrepareHardware

EvtSerCx2SystemDmaReceiveCancelNewDataNotification

EvtSerCx2SystemDmaReceiveCleanupTransaction

EvtSerCx2SystemDmaReceiveConfigureDmaChannel

EvtSerCx2SystemDmaReceiveEnableNewDataNotification

EvtSerCx2SystemDmaReceiveInitializeTransaction

IRP_MJ_READ

SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT

SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT_NEW_DATA_NOTIFICATION

SerCx2SystemDmaReceiveCreate

WdfDmaEnablerSetMaximumScatterGatherElements