Fungsi SpbRequestGetTransferParameters (spbcx.h)
Metode SpbRequestGetTransferParameters mengambil parameter transfer untuk transfer individual dalam urutan transfer I/O.
Sintaks
void SpbRequestGetTransferParameters(
[in] SPBREQUEST SpbRequest,
[in] ULONG Index,
[out, optional] SPB_TRANSFER_DESCRIPTOR *TransferDescriptor,
[out, optional] PMDL *TransferBuffer
);
Parameter
[in] SpbRequest
Handel SPBREQUEST ke permintaan I/O untuk mengambil parameter transfer. Parameter ini harus menjadi handel untuk permintaan IOCTL_SPB_EXECUTE_SEQUENCE .
[in] Index
Indeks transfer dalam urutan transfer I/O. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
[out, optional] TransferDescriptor
Penunjuk ke struktur SPB_TRANSFER_DESCRIPTOR yang dialokasikan pemanggil tempat metode menulis parameter transfer. Parameter TransferDescriptor bersifat opsional dan dapat ditentukan sebagai NULL jika pemanggil tidak memerlukan parameter transfer. Untuk informasi selengkapnya, lihat bagian Keterangan.
[out, optional] TransferBuffer
Pointer ke lokasi tempat metode menulis pointer ke MDL (atau rantai MDL) yang menjelaskan memori fisik dalam buffer transfer. Pemanggil tidak boleh mengubah isi MDL ini. Parameter ini bersifat opsional dan dapat diatur ke NULL jika MDL tidak diperlukan. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
Nilai kembali
Tidak ada
Keterangan
Untuk meminta urutan transfer I/O, klien (driver periferal) driver pengontrol SPB mengirimkan permintaan IOCTL_SPB_EXECUTE_SEQUENCE yang berisi daftar transfer secara berurutan. Driver pengontrol Anda dapat memanggil SpbRequestGetTransferParameters untuk mendapatkan informasi tentang transfer tertentu dalam urutan.
Parameter Indeks adalah indeks yang mengidentifikasi transfer tertentu dalam urutan. Jika N adalah jumlah transfer dalam urutan, indeks yang valid berkisar dari 0 hingga N–1. Untuk menentukan jumlah transfer secara berurutan, panggil metode SpbRequestGetParameters . Metode ini mengambil struktur SPB_TRANSFER_DESCRIPTOR yang berisi parameter permintaan. Anggota TransferCount dari struktur ini menentukan jumlah transfer dalam urutan.
Jika TransferDescriptor bukan NULL, pemanggil harus memanggil fungsi SPB_TRANSFER_DESCRIPTOR_INIT untuk menginisialisasi struktur sebelum memanggil SpbRequestGetTransferParameters. Setelah struktur diinisialisasi, struktur dapat digunakan kembali sebanyak yang diperlukan tanpa diinisialisasi ulang.
TransferBuffer adalah penunjuk opsional di mana SpbRequestGetTransferParameters menulis penunjuk ke MDL yang menjelaskan tata letak halaman fisik untuk buffer transfer. Buffer transfer dapat dijelaskan oleh satu MDL atau oleh rantai MDL. Buffer sederhana, yang terdiri dari blok memori virtual yang berdekatan, dijelaskan oleh satu MDL. Jika buffer transfer diformat sebagai daftar pengumpulan sebar, setiap blok memori virtual yang berdekatan dalam buffer dijelaskan oleh MDL dalam rantai MDL. Untuk informasi selengkapnya tentang MDL, lihat Menggunakan MDL.
Contoh
//
// Note that this snippet shows a transfer completing synchronously. This
// is a horrible thing for a driver to do, but demonstrates the DDI nicely.
//
WDF_REQUEST_PARAMETERS parameters;
WDF_TRANSFER_DESCRIPTOR transfer;
WDF_REQUEST_PARAMETERS_INIT(¶meters);
WDF_TRANSFER_DESCRIPTOR_INIT(&transfer);
SpbRequestGetParameters(request, ¶meters);
for (ULONG i = 0; i < parameters.SequenceCount; i += 1)
{
WDFMEMORY buffer;
SpbRequestGetTransferParameters(request, i, &transfer, &buffer);
MyDriverPerformTransfer(deviceContext,
request,
transfer,
buffer);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8. |
Target Platform | Universal |
Header | spbcx.h |
Pustaka | Spbcxstubs.lib |
IRQL | <= DISPATCH_LEVEL |
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