Fungsi NdisGetDataBuffer (ndis/nblapi.h)
Panggil fungsi NdisGetDataBuffer untuk mendapatkan akses ke blok data yang berdekatan dari struktur NET_BUFFER .
Sintaks
NDIS_EXPORTED_ROUTINE PVOID NdisGetDataBuffer(
[in] NET_BUFFER *NetBuffer,
[in] ULONG BytesNeeded,
[in, optional] PVOID Storage,
[in] ULONG AlignMultiple,
[in] ULONG AlignOffset
);
Parameter
[in] NetBuffer
Penunjuk ke struktur NET_BUFFER.
[in] BytesNeeded
Jumlah byte data yang berdampingan yang diminta.
[in, optional] Storage
Penunjuk ke buffer, atau NULL jika tidak ada buffer yang disediakan oleh pemanggil. Buffer harus lebih besar dari atau sama dengan ukuran dengan jumlah byte yang ditentukan dalam BytesNeeded . Jika nilai ini bukan NULL, dan data yang diminta tidak berdampingan, NDIS menyalin data yang diminta ke area yang ditunjukkan oleh Penyimpanan .
[in] AlignMultiple
Kelipatan perataan yang dinyatakan dalam kekuatan dua. Misalnya, 2, 4, 8, 16, dan sebagainya. Jika AlignMultiple adalah 1, maka tidak ada persyaratan penyelarasan.
[in] AlignOffset
Offset, dalam byte, dari kelipatan perataan.
Nilai kembali
NdisGetDataBuffer mengembalikan pointer ke awal data yang berdekatan atau mengembalikan NULL.
Jika anggota DataLength dari struktur NET_BUFFER_DATA dalam struktur NET_BUFFER yang dituju parameter NetBuffer kurang dari nilai dalam parameter BytesNeeded , nilai yang dikembalikan adalah NULL.
Jika data yang diminta dalam buffer berdampingan, nilai yang dikembalikan adalah penunjuk ke lokasi yang disediakan NDIS. Jika data tidak berdampingan, NDIS menggunakan parameter Penyimpanan sebagai berikut:
- Jika parameter Storagenon-NULL, NDIS menyalin data ke buffer di Storage. Nilai yang dikembalikan adalah penunjuk yang diteruskan ke parameter Storage .
- Jika parameter Storage adalah NULL, nilai yang dikembalikan adalah NULL.
Keterangan
Panggil fungsi ini untuk mendapatkan penunjuk ke header data jaringan yang terkandung dalam struktur NET_BUFFER . Anda dapat dengan mudah mengurai header yang disimpan di blok data yang bersebelahan yang dikembalikan fungsi ini.
Persyaratan perataan yang diminta dinyatakan sebagai kekuatan dua kelipatan ditambah offset. Misalnya, jika AlignMultiple adalah 4 dan AlignOffset adalah 3 maka alamat data harus kelipatan 4 plus 3. Jika perlu, NDIS akan mengalokasikan memori untuk memenuhi persyaratan penyelarasan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.0 dan yang lebih baru. |
Target Platform | Universal |
Header | ndis/nblapi.h (sertakan ndis.h) |
Pustaka | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | Irql_NetBuffer_Function(ndis) |
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