PCANCEL_MAPPED_TRANSFER fungsi panggilan balik (wdm.h)
Rutinitas CancelMappedTransfer membatalkan transfer DMA sistem yang saat ini dipetakan ke adaptor.
Sintaks
PCANCEL_MAPPED_TRANSFER PcancelMappedTransfer;
NTSTATUS PcancelMappedTransfer(
[in] PDMA_ADAPTER DmaAdapter,
[in] PVOID DmaTransferContext
)
{...}
Parameter
[in] DmaAdapter
Penunjuk ke struktur DMA_ADAPTER . Struktur ini adalah objek adaptor yang menunggu transfer DMA tertunda selesai. Pemanggil memperoleh penunjuk ini dari panggilan sebelumnya ke rutinitas IoGetDmaAdapter , dan penelepon meneruskan penunjuk ini ke panggilan MapTransferEx yang menyiapkan register peta untuk transfer DMA.
[in] DmaTransferContext
Penunjuk ke konteks transfer DMA. Nilai parameter ini harus konteks transfer DMA yang sama yang diteruskan ke panggilan AllocateAdapterChannelEx yang meminta alokasi saluran adaptor.
Nilai kembali
CancelMappedTransfer mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode kesalahan akan menampilkan kode kesalahan yang sesuai.
Keterangan
CancelMappedTransfer bukan rutinitas sistem yang dapat dipanggil langsung berdasarkan nama. Rutinitas ini hanya dapat dipanggil dengan pointer dari alamat yang dikembalikan dalam struktur DMA_OPERATIONS. Driver mendapatkan alamat rutinitas ini dengan memanggil IoGetDmaAdapter dengan anggota Versi parameter DeviceDescription diatur ke DEVICE_DESCRIPTION_VERSION3. Jika IoGetDmaAdapter mengembalikan NULL, rutinitas tidak tersedia di platform Anda.
Rutinitas ini menandai konteks transfer terkait sebagai dibatalkan, yang mencegah transfer lebih lanjut dalam konteks ini. Setelah transfer dibatalkan, rutinitas penyelesaiannya dipanggil, tetapi status untuk transfer mungkin diatur ke DmaCancelled.
Terlepas dari apakah transfer DMA sistem dibatalkan atau selesai, rutinitas FlushAdapterBuffers atau FlushAdapterBuffersEx harus selalu dipanggil untuk membersihkan data apa pun yang tetap berada di cache internal pengontrol DMA sistem di akhir operasi transfer DMA. Setelah transfer dibatalkan atau selesai, panggilan FlushAdapterBuffersXxx harus terjadi sebelum saluran DMA dirilis atau rutinitas MapTransferEx dipanggil untuk menyiapkan register peta untuk transfer DMA baru.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8. |
Target Platform | Desktop |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | <= DISPATCH_LEVEL |