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.
Nilai yang dikembalikan juga bisa NULL karena kondisi sumber daya rendah di mana buffer data tidak dapat dipetakan. Hal ini dapat terjadi bahkan jika data bersebelahan atau parameter Penyimpanan bukan 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

NET_BUFFER

NET_BUFFER_DATA