Fungsi NdisRetreatNetBufferDataStart (ndis/nblapi.h)

Panggil fungsi NdisRetreatNetBufferDataStart untuk mengakses lebih banyak ruang data yang digunakan dalam rantai MDL dari struktur NET_BUFFER .

Sintaks

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
  [in]           NET_BUFFER              *NetBuffer,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);

Parameter

[in] NetBuffer

Penunjuk ke struktur NET_BUFFER yang dialokasikan sebelumnya.

[in] DataOffsetDelta

Jumlah ruang data yang digunakan untuk ditambahkan. NDIS menyesuaikan anggota DataOffset dari struktur NET_BUFFER yang sesuai. Jika tidak ada cukup ruang data yang tidak digunakan untuk memenuhi permintaan, NDIS mengalokasikan memori tambahan.

[in] DataBackFill

Jika NDIS harus mengalokasikan memori, parameter ini menentukan jumlah ruang data, selain nilai parameter DataOffsetDelta , untuk dialokasikan.

[in, optional] AllocateMdlHandler

Titik masuk opsional untuk fungsi NetAllocateMdl . Jika pemanggil menentukan titik masuk untuk fungsi NetAllocateMdl , NDIS memanggil NetAllocateMdl untuk mengalokasikan MDL dan memori.

Nilai kembali

NdisRetreatNetBufferDataStart mengembalikan salah satu hal berikut ini:

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart berhasil mengalokasikan ruang data yang digunakan baik dengan menggunakan ruang data yang tidak digunakan atau dengan mengalokasikan penyimpanan baru.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferDataStart gagal karena sumber daya yang tidak mencukupi.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferDataStart gagal karena alasan selain sumber daya yang tidak mencukupi.

Keterangan

NdisRetreatNetBufferDataStart mencoba memenuhi permintaan dengan mengurangi nilai anggota DataOffset dari struktur NET_BUFFER .

Jika tidak ada cukup ruang data yang tidak digunakan, fungsi ini mengalokasikan buffer baru dan MDL untuk menggambarkan buffer baru dan menautkan MDL baru ke awal rantai MDL. NDIS memanggil fungsi NetAllocateMdl yang ditentukan di AllocateMdl untuk mengalokasikan MDL dan memori. Fungsi NetAllocateMdl dapat menggunakan metode alokasi apa pun yang memenuhi persyaratan desain driver.

Memanggil Fungsi NdisAdvanceNetBufferDataStart untuk merilis ruang data yang digunakan yang ditambahkan dengan NdisRetreatNetBufferDataStart.

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

NdisAdvanceNetBufferDataStart

NetAllocateMdl