Fungsi WdfDmaTransactionCancel (wdfdmatransaction.h)
[Berlaku untuk KMDF saja]
Metode WdfDmaTransactionCancel mencoba membatalkan transaksi DMA yang menunggu alokasi register peta.
Sintaks
BOOLEAN WdfDmaTransactionCancel(
[in] WDFDMATRANSACTION DmaTransaction
);
Parameter
[in] DmaTransaction
Handel ke objek transaksi DMA yang mewakili transaksi yang sedang dibatalkan. Transaksi ini pasti sudah diinisialisasi oleh driver.
Mengembalikan nilai
WdfDmaTransactionCancel mengembalikan TRUE jika kerangka kerja berhasil membatalkan alokasi register peta. Dalam hal ini, tidak ada transfer yang selesai, dan kerangka kerja tidak membuat panggilan balik DMA tambahan pada transaksi sampai dimulai kembali.
Metode mengembalikan FALSE jika utas lain sudah memproses transaksi ini, atau jika driver belum memanggil WdfDmaTransactionExecute. Dalam kasus pertama, kerangka kerja saat ini memanggil atau akan memanggil EvtProgramDma atau EvtReserveDma. Pada titik ini, driver yang menentukan profil DMA mode sistem mungkin memanggil WdfDmaTransactionStopSystemTransfer.
Metode ini juga mengembalikan FALSE jika dipanggil dengan transaksi yang dialokasikan dari pengaktif DMA versi 2.
Keterangan
Driver mungkin memanggil WdfDmaTransactionCancel dari fungsi panggilan balik peristiwa EvtRequestCancel yang disediakannya dalam panggilan ke WdfRequestMarkCancelableEx. Untuk contoh kode yang menunjukkan cara melakukan ini, lihat WdfDmaTransactionStopSystemTransfer.
Driver mungkin juga memanggil WdfDmaTransactionCancel dari fungsi panggilan balik peristiwa EvtIoCanceledOnQueue .
Pembatalan hanya dapat berhasil jika panggilan ke WdfDmaTransactionCancel terjadi setelah panggilan ke WdfDmaTransactionExecute, tetapi sebelum metode WdfDmaTransactionExecute telah memulai alokasi DMA. Untuk informasi selengkapnya, lihat Membatalkan Transaksi DMA.
Driver harus memanggil WdfDmaTransactionCancel setelah memanggil WdfDmaTransactionInitialize, tetapi sebelum memanggil WdfDmaTransactionRelease atau WdfObjectDelete untuk menghapus objek transaksi.
Jangan panggil WdfDmaTransactionCancel setelah kerangka kerja memanggil EvtProgramDma atau EvtReserveDma.
Driver harus meminta penggunaan DMA versi 3 sebelum memanggil WdfDmaTransactionCancel. Untuk memilih DMA versi 3, atur anggota WdmDmaVersionOverridedari WDF_DMA_ENABLER_CONFIG ke 3.
Jika driver memanggil WdfDmaTransactionCancel pada transaksi yang dialokasikan dari pengaktif DMA versi 2, kerangka kerja menghasilkan kesalahan pemverifikasi dan WdfDmaTransactionCancel mengembalikan FALSE. Dalam hal ini, tidak ada upaya yang dilakukan untuk membatalkan transaksi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Target Platform | Universal |
Versi KMDF minimum | 1.11 |
Header | wdfdmatransaction.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.) |
IRQL | <=DISPATCH_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf) |
Lihat juga
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