Makro NdisInitializeListHead (ndis.h)

Fungsi NdisInitializeListHead menginisialisasi antrean yang ditautkan dan dikelola driver secara doubly.

Sintaks

void NdisInitializeListHead(
  [in]  _ListHead
);

Parameter

[in] _ListHead

Pointer ke penyimpanan nonpaged yang dialokasikan driver untuk kepala antrean atau daftar yang saling diblokir.

Nilai kembali

Tidak ada

Keterangan

NdisInitializeListHead dapat dipanggil dari fungsi MiniportInitializeEx atau dari rutinitas DriverEntry driver protokol jika driver mengantre meminta secara internal. Namun, driver miniport jarang menyiapkan antrean internal karena pustaka NDIS menserialisasikan permintaan dan paket yang dikirim ke driver miniport.

Setiap driver NDIS yang mempertahankan antrean internal bertanggung jawab untuk menyinkronkan akses fungsi driver ke entri yang diantrekan. Fungsi NdisInterlockedXxxList memastikan bahwa hanya satu fungsi driver yang dapat mengakses entri antrean pada saat tertentu, bahkan jika driver berjalan pada komputer multiprosesor, karena antrean dilindungi oleh kunci putar yang disediakan penelepon.

Untuk antrean yang saling mengunci, driver juga harus menyediakan penyimpanan yang tidak di-patah untuk kunci putar. Ini harus menginisialisasi kunci putar dengan fungsi NdisAllocateSpinLock sebelum meneruskan penunjuk ke kunci spin tersebut ke salah satu fungsi DaftarXxxNdisInterlocked .

Pemanggil NdisInitializeListHead dapat berjalan di IRQL apa pun. Jika NdisInitializeListHead dipanggil di IRQL >= DISPATCH_LEVEL penyimpanan untuk ListHead harus residen.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat NdisInitializeListHead (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat NdisInitializeListHead (NDIS 5.1)) di Windows XP.
Target Platform Desktop
Header ndis.h (termasuk Ndis.h)
IRQL Tingkat apa pun (lihat bagian Keterangan)

Lihat juga

DriverEntry dari Driver Protokol NDIS

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList