Fungsi NdisMIndicateStatus (ndis.h)

Catatan NDIS 5. x telah ditolak dan digantikan oleh NDIS 6. x. Untuk pengembangan driver NDIS baru, lihat Driver Jaringan Yang Dimulai dengan Windows Vista. Untuk informasi tentang port NDIS 5. x driver ke NDIS 6. x, lihat Memindahkan Driver NDIS 5.x ke NDIS 6.0.

NdisMIndicateStatus menunjukkan perubahan status NIC ke driver NDIS tingkat yang lebih tinggi.

Sintaks

void NdisMIndicateStatus(
  [in] NDIS_HANDLE MiniportHandle,
  [in] NDIS_STATUS GeneralStatus,
  [in] PVOID       StatusBuffer,
  [in] UINT        StatusBufferSize
);

Parameter

[in] MiniportHandle

Menentukan handel yang awalnya dimasukkan ke MiniportInitialize.

[in] GeneralStatus

Menentukan nilai NDIS_STATUS_ XXX yang menunjukkan perubahan umum status untuk NIC.

[in] StatusBuffer

Penunjuk ke buffer yang dialokasikan penelepon yang berisi data yang bersifat khusus menengah dan bergantung pada nilai GeneralStatus. Ini menunjukkan informasi terperinci tentang perubahan status.

[in] StatusBufferSize

Menentukan ukuran dalam byte buffer di StatusBuffer.

Nilai kembali

Tidak ada

Keterangan

Ketika driver miniport memanggil NdisMIndicateStatus, NDIS memanggil setiap fungsi ProtocolStatus protokol terikat. Ini memungkinkan driver protokol terikat atau, mungkin, manajer konfigurasi untuk mencatat perubahan status NIC yang mendasar atau mengambil tindakan korektif. Misalnya, protokol mungkin memanggil NdisReset, tergantung pada NDIS_STATUS_ XXX yang ditunjukkan.

Ketika driver miniport memanggil NdisMIndicateStatus untuk melaporkan perubahan status NIC, NDIS dapat memanggil fungsi MiniportReset untuk mencoba memulihkan NIC ke kondisi kerja. Dalam keadaan ini, NDIS dapat memanggil protokol terikat hanya dengan NDIS_STATUS_RESET_START dan kemudian dengan NDIS_STATUS_RESET_END, bukan dengan GeneralStatus yang ditunjukkan oleh driver miniport.

NdisMIndicateStatus menyediakan dua informasi:

  • Nilai status keseluruhan yang menunjukkan perubahan umum dalam status.
  • Alasan khusus untuk perubahan umum, yang dapat spesifik jaringan. Misalnya, kegagalan penyisipan cincin khusus untuk jaringan Token Ring (802.5), tetapi tidak relevan dengan NIC Ethernet (802,3) dan drivernya.

Driver miniport juga dapat memanggil NdisMIndicateStatus untuk menunjukkan masalah seperti kabel yang telah dilepas secara tidak sengaja lalu dipasang ulang atau cincin yang gagal sementara. Misalnya, kedua kondisi berikut terjadi:

  • Driver miniport memanggil NdisMIndicateStatus dengan NDIS_STATUS_RING_STATUS.

  • StatusBuffer berisi salah satu nilai status berikut ini:

    • NDIS_RING_LOBE_WIRE_FAULT
    • NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS

Setelah perubahan status seperti itu telah disinyalkan dengan indikasi, ambang batas atau penghitung statistik terkait tetap tidak berubah.

Driver miniport tidak dapat memanggil NdisMIndicateStatus dalam konteks fungsi MiniportISR, MiniportHalt, atau MiniportShutdown-nya . Hanya driver miniport yang dideserialisasi yang dapat memanggil NdisMIndicateStatus dalam konteks fungsi MiniportInitialize-nya .

Driver miniport harus melepaskan kunci spin apa pun yang dipegangnya sebelum memanggil NdisMIndicateStatus.

Penelepon berseri NdisMIndicateStatus harus berjalan di IRQL = DISPATCH_LEVEL. Penelepon NdisMIndicateStatus yang dideserialisasi harus berjalan di IRQL <= DISPATCH_LEVEL.

Menunjukkan Kehilangan dan Pemulihan Koneksi Jaringan

Ketika driver miniport merasakan bahwa koneksi jaringan telah hilang, itu harus memanggil NdisMIndicateStatus dengan NDIS_STATUS_MEDIA_DISCONNECT. Ketika koneksi dipulihkan, driver miniport harus memanggil NdisMIndicateStatus dengan NDIS_STATUS_MEDIA_CONNECT.

Catatan 802.11 driver miniport harus mengikuti pedoman status media untuk LAN nirkabel saat menghasilkan indikasi koneksi jaringan. Untuk informasi selengkapnya tentang panduan ini, lihat Indikasi Status Media untuk Jaringan 802.11.

802.11 Wireless LAN Miniport Driver Panggilan ke NdisMIndicateStatus

Driver miniport LAN nirkabel (WLAN) 802.11 dapat membuat berbagai indikasi khusus untuk media WLAN. Misalnya, driver miniport dapat membuat indikasi khusus WLAN ketika hal berikut terjadi:

  • Driver mendeteksi bahwa kekuatan sinyal yang diterima dari asosiasi BSS saat ini telah berubah.
  • Driver mendeteksi kegagalan TKIP MIC pada paket yang diterima.

Jenis indikasi khusus WLAN berikut dapat dibuat oleh driver miniport 802.11 dengan NdisMIndicateStatus:

Untuk informasi selengkapnya tentang indikasi spesifik media ini, lihat Indikasi Status Media-Specific 802.11.

WAN Miniport Driver Panggilan ke NdisMIndicateStatus

Sebagian besar driver WAN NIC menunjukkan status dengan beberapa kode status khusus dan konten buffer. Indikasi status ini dihasilkan oleh driver WAN NIC, dan driver protokol NDIS yang terikat ke driver miniport seperti itu dapat mengabaikan indikasi ini. Namun, memproses indikasi ini dengan benar biasanya menghasilkan peningkatan performa untuk protokol dan untuk driver WAN NIC.

Empat jenis indikasi khusus WAN berikut dapat dikirim ke driver protokol terikat dengan NdisMIndicateStatus:

  • Baris ke atas
  • Baris ke bawah
  • Fragmen
  • Peristiwa garis TAPI

NDIS_STATUS_WAN_LINE_UP

Driver miniport WAN membuat indikasi line-up setiap kali tautan baru menjadi aktif. Sampai ini terjadi, NIC akan menerima bingkai dan membiarkannya berhasil atau gagal, tetapi tidak mungkin mereka benar-benar akan diterima oleh simpul jarak jauh apa pun. Sampai ini terjadi, protokol harus mengurangi timer mereka dan mencoba kembali jumlah untuk dengan cepat gagal setiap upaya koneksi keluar.

Driver miniport WAN membuat indikasi ini dengan NdisMIndicateStatus sebelum kembali dari permintaan OID_TAPI_GET_ID .

Kode status untuk indikasi line-up NDIS_STATUS_WAN_LINE_UP. Buffer di StatusBuffer diformat sebagai struktur NDIS_MAC_LINE_UP .

NDIS_STATUS_WAN_LINE_DOWN

Driver miniport WAN membuat indikasi line-down setiap kali tautan turun. Ketika ini terjadi, protokol terikat harus mengurangi timer mereka dan mencoba kembali jumlah sampai indikasi line-up berikutnya.

Kode status untuk indikasi line-down NDIS_STATUS_WAN_LINE_DOWN. Buffer di StatusBuffer diformat sebagai struktur NDIS_MAC_LINE_DOWN .

NDIS_STATUS_WAN_FRAGMENT

Driver miniport WAN membuat indikasi fragmen setiap kali menerima paket parsial dari simpul jarak jauh. Ketika ini terjadi, protokol terikat harus mengirim bingkai ke simpul jarak jauh yang akan memberi tahunya tentang situasi ini, daripada menunggu waktu habis terjadi.

Kode status untuk indikasi fragmen NDIS_STATUS_WAN_FRAGMENT. Buffer di StatusBuffer diformat sebagai struktur NDIS_MAC_FRAGMENT .

NDISWAN memantau paket yang dihilangkan dengan menghitung jumlah indikasi fragmen pada setiap tautan.

NDIS_TAPI_EVENT

Driver miniport WAN harus menggunakan nilai GeneralStatus dari NDIS_STATUS_TAPI_INDICATION untuk indikasi status TAPI . Buffer di StatusBuffer diformat sebagai struktur NDIS_TAPI_EVENT.

  • Platform target: Universal
  • Versi: Tidak didukung untuk driver NDIS 6.0 di Windows Vista. Gunakan NdisMIndicateStatusExsebagai gantinya. Didukung untuk driver NDIS 5.1 di Windows Vista dan Windows XP.

Persyaratan

Persyaratan Nilai
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib

Lihat juga