Bagikan melalui


struktur NET_PNP_EVENT (netpnp.h)

Struktur NET_PNP_EVENT menjelaskan peristiwa Plug and Play jaringan (PnP), peristiwa PnP NDIS, atau peristiwa manajemen daya.

Sintaks

typedef struct _NET_PNP_EVENT {
  NET_PNP_EVENT_CODE NetEvent;
  PVOID              Buffer;
  ULONG              BufferLength;
  ULONG_PTR          NdisReserved[4];
  ULONG_PTR          TransportReserved[4];
  ULONG_PTR          TdiReserved[4];
  ULONG_PTR          TdiClientReserved[4];
} NET_PNP_EVENT, *PNET_PNP_EVENT;

Anggota

NetEvent

Kode peristiwa yang menjelaskan peristiwa sebagai salah satu hal berikut:

NetEventSetPower

Menunjukkan bahwa manajer daya telah mengirim permintaan Atur Daya, yang menentukan transisi ke status daya sistem. NDIS menerjemahkan status ini ke status daya perangkat yang sesuai untuk perangkat.

Untuk informasi lebih lanjut, lihat bagian Keterangan.

NetEventQueryPower

Menunjukkan bahwa manajer daya telah mengirim permintaan Daya Kueri, yang meminta transisi ke status daya sistem. NDIS menerjemahkan status ini ke status daya perangkat yang sesuai untuk perangkat.

Untuk informasi lebih lanjut, lihat bagian Keterangan.

NetEventQueryRemoveDevice

Menunjukkan bahwa Manajer PnP telah mengirim permintaan Hapus Kueri Perangkat. Manajer PnP mengirimkan permintaan ini untuk mengkueri apakah perangkat dapat dihapus tanpa mengganggu operasi.

NetEventCancelRemoveDevice

Menunjukkan bahwa Manajer PnP telah mengirim permintaan Batalkan Hapus Perangkat. Manajer PnP mengirimkan permintaan ini untuk membatalkan penghapusan perangkat setelah Manajer PnP mengirim permintaan Hapus Kueri Perangkat.

NetEventReconfigure

Menunjukkan bahwa konfigurasi telah berubah untuk komponen jaringan. Misalnya, jika pengguna, melalui folder Connections Jaringan dan Dial-up, mengubah alamat IP untuk TCP/IP, NDIS menunjukkan peristiwa NetEventReconfigure ke protokol TCP/IP. Selain itu, driver perantara biasanya menggunakan kejadian ini sebagai pemicu untuk memanggil Fungsi NdisIMInitializeDeviceInstanceEx dan memulai miniport virtualnya. Untuk informasi selengkapnya tentang NetEventReconfigure, lihat NetEventIMReEnableDevice.

NetEventBindList

Menunjukkan kepada driver protokol bahwa urutan pemrosesan daftar ikatannya telah dikonfigurasi ulang. Daftar ini menunjukkan urutan relatif yang berlaku untuk pengikatan saat memproses, misalnya, permintaan pengguna yang mungkin dirutekan ke salah satu dari beberapa pengikatan. Buffer yang diteruskan dengan kejadian ini berisi daftar nama perangkat yang diformat sebagai string Unicode yang dihentikan null. Format setiap nama perangkat identik dengan anggota AdapterName yang diteruskan ke panggilan ke fungsi ProtocolBindAdapterEx .

NetEventBindsComplete

Menunjukkan bahwa driver protokol telah terikat ke semua NIC yang dapat diikatnya. NDIS tidak akan menunjukkan NIC lagi ke protokol kecuali PnP NIC dicolokkan ke dalam sistem.

NetEventPnPCapabilities

Menunjukkan bahwa pengguna mengaktifkan atau menonaktifkan kemampuan bangun adaptor yang mendasar. (Pengikatan ditentukan oleh parameter ProtocolBindingContext yang diteruskan ke fungsi ProtocolNetPnPEvent .)

NetEventPause

Menunjukkan bahwa pengikatan protokol yang ditentukan harus memasuki status Jeda. Pengikatan akan memasuki status Dijeda setelah NDIS menyelesaikan semua permintaan pengiriman yang beredar untuk pengikatan.

NetEventRestart

Menunjukkan bahwa pengikatan protokol yang ditentukan telah memasuki status Memulai Ulang. Setelah driver protokol siap untuk melanjutkan operasi kirim dan terima untuk pengikatan, pengikatan memasuki status Berjalan.

NetEventPortActivation

Menunjukkan aktivasi daftar port yang terkait dengan pengikatan yang ditentukan.

NetEventPortDeactivation

Menunjukkan pennonaktifkan daftar port yang terkait dengan pengikatan yang ditentukan.

NetEventIMReEnableDevice

Menunjukkan bahwa konfigurasi telah berubah untuk miniport virtual NDIS 6.0 atau driver menengah yang lebih baru. NetEventIMReEnableDevice mirip dengan peristiwa NetEventReconfigure kecuali bahwa driver perantara menerima peristiwa ini untuk satu miniport virtual dan peristiwa NetEventReconfigure berlaku untuk semua miniport virtual driver perantara. Misalnya, driver perantara menerima peristiwa NetEventIMReEnableDevice saat pengguna menonaktifkan lalu mengaktifkan satu miniport virtual dari Manajer Perangkat atau sumber lain. Untuk contoh manajemen daya driver perantara, lihat sampel driver NDIS MUX Intermediate Driver dan Notify Object yang tersedia di repositori sampel driver Windows di GitHub.

NetEventNDKEnable

Menunjukkan bahwa Network Direct Kernel (NDK) saat ini diaktifkan.

NetEventNDKDisable

Menunjukkan bahwa NDK saat ini dinonaktifkan.

NetEventFilterPredetach

Menunjukkan bahwa filter akan dilepas, sehingga filter dapat melakukan pembersihan yang diperlukan yang tidak dimungkinkan di handler FilterDetach (karena jalur OID dan indikasi ditutup pada saat itu).

NetEventBindFailed

Menunjukkan bahwa kegagalan peristiwa pengikatan telah terjadi.

NetEventSwitchActivate

Menunjukkan bahwa Hyper-V Extensible Switch telah menyelesaikan aktivasi, dan ekstensi switch sekarang dapat dengan aman mengkueri untuk konfigurasi pengalihan lebih lanjut. Indikasi ini hanya digunakan dalam tumpukan Hyper-V Extensible Switch, yang dikeluarkan oleh miniport ekstensi. Lihat Mengkueri Konfigurasi Sakelar Yang Dapat Diperluas Hyper-V dan NDIS_SWITCH_PARAMETERS untuk detail selengkapnya.

NetEventInhibitBindsAbove

Peristiwa sinkron yang mencegah filter dan protokol lain mengikat ke adaptor miniport. Filter atau protokol apa pun yang sebelumnya terikat akan tidak terikat sebelum peristiwa selesai. Aturan penggunaan ada di bawah ini.

  • Hindari meninggalkan adaptor miniport dalam status penghambatan, selama lebih dari 1000 milidetik.
  • Kejadian ini hanya dapat dikeluarkan setelah MiniportInitializeEx dimulai dan tidak boleh dikeluarkan setelah MiniportHaltEx kembali.
  • Kejadian ini hanya dapat dikeluarkan ketika adaptor miniport berada dalam status D0.
  • Karena peristiwa ini memblokir, tidak boleh dikeluarkan oleh konteks apa pun yang akan menyebabkan kebuntuan.
  • Kunci tidak boleh ditahan saat mengeluarkan kejadian ini.
  • Kejadian ini harus dikeluarkan pada PASSIVE_LEVEL.
Kejadian ini tersedia dimulai dengan NDIS versi 6.50 dan harus digunakan dengan V2 atau versi NET_PNP_EVENT yang lebih baru. Event ini secara opsional dapat dikeluarkan oleh driver miniport. Protokol dan filter tidak dapat menerima kejadian ini atau mengeluarkannya.

NetEventAllowBindsAbove

Peristiwa asinkron yang membalikkan efek NetEventInhibitBindsAbove. Aturan penggunaan ada di bawah ini.

  • Kejadian ini hanya dapat dikeluarkan setelah MiniportInitializeEx dimulai dan tidak boleh dikeluarkan setelah MiniportHaltEx kembali.
  • Kejadian ini hanya dapat dikeluarkan ketika adaptor miniport berada dalam status D0.
  • Kunci tidak boleh ditahan saat mengeluarkan kejadian ini.
  • Kejadian ini harus dikeluarkan pada PASSIVE_LEVEL.
Kejadian ini tersedia dimulai dengan NDIS versi 6.50 dan harus digunakan dengan V2 atau versi NET_PNP_EVENT yang lebih baru. Event ini secara opsional dapat dikeluarkan oleh driver miniport. Protokol dan filter tidak dapat menerima kejadian ini atau mengeluarkannya.

NetEventRequirePause

Peristiwa sinkron yang menunjukkan protokol dan filter termasuk adaptor miniport harus dijeda. Protokol dan filter serta adaptor miniport dijamin akan dijeda saat rutinitas NdisMNetPnPEvent kembali. Aturan penggunaan ada di bawah ini.

  • Hindari penundaan antara peristiwa NetEventAllowStart dan NetEventRequirePause selama lebih dari 1000 milidetik untuk mencegah penundaan dalam aplikasi pengguna.
  • Kejadian ini hanya dapat dikeluarkan setelah MiniportInitializeEx dimulai dan tidak boleh dikeluarkan setelah MiniportHaltEx kembali.
  • Tidak ada jaminan bahwa NDIS akan memanggil MiniportPause setelah peristiwa ini diterbitkan. Secara khusus, jika adaptor miniport Anda sudah dijeda, NDIS tidak akan memperkenalkan perulangan start-pause tambahan. Ini berarti bahwa berapa kali MiniportPause yang disebut tidak lebih besar dari, kurang dari, atau sama dengan jumlah peristiwa ini dikeluarkan.
  • Karena peristiwa ini memblokir, tidak boleh dikeluarkan oleh konteks apa pun yang akan menyebabkan kebuntuan.
  • Kunci tidak boleh ditahan saat mengeluarkan kejadian ini.
Kejadian ini tersedia dimulai dengan NDIS versi 6.50 dan harus digunakan dengan V2 atau versi NET_PNP_EVENT yang lebih baru. Event ini dapat secara opsional dikeluarkan oleh driver miniport. Protokol dan filter tidak dapat menerima kejadian ini atau mengeluarkannya.

NetEventAllowStart

Peristiwa asinkron yang menunjukkan protokol dan filter termasuk adaptor miniport tidak perlu dijeda. Aturan penggunaan di bawah ini. Tidak ada jaminan status jeda untuk driver apa pun dalam protokol dan filter setelah NdisMNetPnPEvent rutin kembali.

  • Kejadian ini hanya dapat dikeluarkan setelah MiniportInitializeEx dimulai dan tidak boleh dikeluarkan setelah MiniportHaltEx kembali.
  • Karena peristiwa ini memblokir, tidak boleh dikeluarkan oleh konteks apa pun yang akan menyebabkan kebuntuan.
  • Kunci tidak boleh ditahan saat mengeluarkan kejadian ini.
Kejadian ini tersedia dimulai dengan NDIS versi 6.50 dan harus digunakan dengan V2 atau versi NET_PNP_EVENT yang lebih baru. Event ini dapat secara opsional dikeluarkan oleh driver miniport. Protokol dan filter tidak dapat menerima kejadian ini atau mengeluarkannya.

Buffer

Alamat buffer yang berisi informasi yang khusus untuk peristiwa yang ditunjukkan dalam anggota NetEvent . Untuk setiap jenis peristiwa, buffer berisi informasi berikut:

NetEventSetPower

Buffer berisi status daya perangkat tempat perangkat bertransisi.

Ketika NDIS memanggil fungsi ProtocolNetPnPEvent driver protokol, status perangkat NDIS_DEVICE_POWER_STATE, yang dapat menjadi salah satu nilai berikut:

NdisDeviceStateUnspecified

Perangkat jaringan tidak mendukung manajemen daya.

NdisDeviceStateD0

Status yang sepenuhnya didukung, di mana perangkat memberikan fungsionalitas dan performa penuh.

NdisDeviceStateD1

Status daya rendah, di mana permintaan transmisi dari host tidak dihormati oleh perangkat, data yang diterima oleh perangkat tidak ditransfer ke memori host, dan tidak ada gangguan yang dapat terjadi. Beberapa konteks perangkat mungkin hilang. Tergantung pada kemampuan NIC dan driver miniportnya, perangkat mungkin dapat menghasilkan sinyal bangun.

NdisDeviceStateD2

Status daya rendah yang mirip dengan NdisDeviceStateD1, kecuali bahwa lebih banyak daya dan konteks yang lebih sedikit biasanya disimpan dan lebih banyak waktu diperlukan untuk beralih ke keadaan yang sepenuhnya didukung.

NdisDeviceStateD3

Status nonaktif, di mana daya telah sepenuhnya dilepas dari perangkat.

Untuk driver protokol, NdisDeviceStateD0 berarti bahwa NIC sepenuhnya didukung dan tersedia untuk operasi normal. Status perangkat lain berarti bahwa perangkat tidak sepenuhnya didukung dan tidak tersedia untuk mengirim dan menerima data jaringan.

NetEventQueryPower

Buffer berisi status daya perangkat yang diminta untuk perangkat. Status perangkat NDIS_DEVICE_POWER_STATE (yang dijelaskan dalam deskripsi nilai NetEventSetPower ).

NetEventQueryRemoveDevice

Konten buffer NULL.

NetEventCancelRemoveDevice

Konten buffer NULL.

NetEventReconfigure

Buffer dapat berisi data khusus protokol. Driver protokol bertanggung jawab untuk memvalidasi data ini.

NetEventBindList

Buffer berisi daftar pengikatan yang direvisi untuk komponen jaringan yang NET_PNP_EVENT_NOTIFICATION struktur sedang diteruskan ke. Daftar ikatan, yang merupakan serangkaian string Unicode yang dihentikan null, memiliki format REG_MULTI_SZ. Masing-masing string adalah nama adaptor. Klien TDI yang terikat pada protokol menggunakan daftar ikatan ini untuk menyusun ulang pengikatan mereka. Driver protokol bertanggung jawab untuk memvalidasi daftar ini.

NetEventBindsComplete

Konten buffer NULL.

NetEventPnPCapabilities

Buffer adalah ULONG yang berisi bitmask. Ketika bendera NDIS_DEVICE_WAKE_UP_ENABLE diatur dalam bitmask, kemampuan bangun NIC diaktifkan. Jika tidak, kemampuan bangun NIC dinonaktifkan. (Pengikatan ditentukan oleh parameter ProtocolBindingContext yang diteruskan ke ProtocolNetPnPEvent.) Ketika diatur ke nol, bendera ini menunjukkan bahwa kemampuan bangun NIC dinonaktifkan.

NetEventPause

Buffer berisi NDIS_PROTOCOL_PAUSE_PARAMETERS struktur.

NetEventRestart

Buffer mungkin berisi NULL atau NDIS_PROTOCOL_RESTART_PARAMETERS struktur. NDIS menyediakan penunjuk ke struktur NDIS_RESTART_ATTRIBUTES di anggota RestartAttributes dari struktur NDIS_PROTOCOL_RESTART_PARAMETERS.

Catatan Jika buffer NULL, atribut restart tidak berubah sejak restart sebelumnya.
 

NetEventPortActivation

Buffer berisi entri pertama dalam daftar struktur NDIS_PORT yang mengidentifikasi port yang akan diaktifkan NDIS. Anda dapat menggunakan anggota berikutnya dari struktur NDIS_PORT untuk mendapatkan struktur berikutnya dalam daftar.

NetEventPortDeactivation

Buffer berisi array nomor port, jenis NDIS_PORT_NUMBER (didefinisikan sebagai ULONG), yang mengidentifikasi port NDIS yang akan dinonaktifkan NDIS. Untuk menghitung jumlah elemen dalam array, bagi nilai anggota BufferLength , yang ada dalam struktur NET_PNP_EVENT yang ditentukan dalam anggota NetPnPEventdari NET_PNP_EVENT_NOTIFICATION, menurut sizeof(NDIS_PORT_NUMBER).

NetEventIMReEnableDevice

Buffer berisi penunjuk ke variabel jenis NDIS_STRING yang berisi string Unicode null-dihentikan yang memberi nama objek perangkat miniport virtual untuk perangkat yang sedang diaktifkan. String adalah nama jalur lengkap—misalnya, \Device\DeviceName.

NetEventNDKEnable

Anggota Buffer adalah NULL.

NetEventNDKDisable

Anggota Buffer adalah NULL.

NetEventFilterPredetach

Anggota Buffer adalah NULL.

NetEventBindFailed

Buffer berisi struktur NDIS_BIND_FAILED_NOTIFICATION .

NetEventSwitchActivate

Konten buffer NULL.

NetEventAllowBindsAbove

Konten buffer NULL.

NetEventInhibitBindsAbove

Konten buffer NULL.

NetEventAllowStart

Konten buffer NULL.

NetEventRequirePause

Konten buffer NULL.

BufferLength

Jumlah byte informasi khusus peristiwa di Buffer.

NdisReserved[4]

Area yang dicadangkan untuk digunakan oleh NDIS.

TransportReserved[4]

Area yang disediakan untuk digunakan oleh pengemudi transportasi.

TdiReserved[4]

Area yang dicadangkan untuk digunakan oleh TDI.

TdiClientReserved[4]

Area yang dicadangkan untuk digunakan oleh klien TDI.

Keterangan

Di NDIS 6.0 dan versi yang lebih baru, ketika sistem operasi mengeluarkan peristiwa PnP sistem atau peristiwa manajemen daya ke objek perangkat target yang mewakili adaptor miniport, NDIS menerjemahkan peristiwa menjadi NET_PNP_EVENT_NOTIFICATION struktur. Anggota NetPnPEvent dari struktur NET_PNP_EVENT_NOTIFICATION adalah struktur NET_PNP_EVENT .

NDIS meneruskan pointer ke struktur NET_PNP_EVENT ke setiap driver protokol yang terikat ke adaptor miniport dengan memanggil fungsi ProtocolNetPnPEvent driver protokol. Driver protokol harus menyimpan pointer ini, karena pointer adalah parameter input ke fungsi NdisCompleteNetPnPEvent , yang dipanggil driver untuk menyelesaikan panggilan ke ProtocolNetPnPEvent secara asinkron.

NDIS meneruskan penunjuk ke struktur NET_PNP_EVENT ke setiap driver filter yang terikat ke adaptor miniport dengan memanggil fungsi FilterNetPnPEvent driver filter. Driver filter tidak harus menyimpan pointer ini karena driver harus menyelesaikan panggilan ke FilterNetPnPEvent secara sinkron.

Dimulai dengan NDIS 6.30, protokol atau driver filter harus mengikuti panduan ini ketika NDIS memanggil fungsi ProtocolNetPnPEvent atau FilterNetPnPEvent :

  • Jika anggota NetEvent dari struktur NET_PNP_EVENT diatur ke NetEventSetPower, driver harus berhenti menghasilkan permintaan I/O baru. Selain itu, driver tidak boleh menunggu penyelesaian permintaan I/O yang tertunda.

    Setelah protokol atau driver filter kembali dari ProtocolNetPnPEvent atau FilterNetPnPEvent, NDIS tidak akan menjeda dan memulai ulang driver ini selama transisi status daya jika kondisi berikut ini benar:

    • Driver miniport yang mendasar mengatur bendera NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND dalam struktur NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Driver meneruskan pointer ke struktur ini dalam panggilannya ke fungsi NdisMSetMiniportAttributes .
    • Semua driver filter yang dilampirkan ke driver miniport mendukung NDIS 6.30 atau versi NDIS yang lebih baru.
    • Semua driver protokol yang terikat ke driver miniport mendukung NDIS 6.30 atau versi NDIS yang lebih baru.
  • Jika anggota NetEvent dari struktur NET_PNP_EVENT diatur ke NetEventSetPower atau NetEventQueryPower, driver tidak boleh menunggu penyelesaian permintaan I/O yang tertunda.
Anggota NetEvent dalam struktur NET_PNP_EVENT mengidentifikasi jenis Plug and Play atau peristiwa manajemen daya. Buffer berisi informasi yang khusus untuk jenis peristiwa.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 5.1, dan NDIS 6.0 dan yang lebih baru. Untuk informasi selengkapnya tentang versi NDIS 5.1 dari struktur ini, lihat NET_PNP_EVENT (NDIS 5.1).
Header netpnp.h (termasuk Ndis.h, Netpnp.h)

Lihat juga

FilterNetPnPEvent

NDIS_BIND_FAILED_NOTIFICATION

NDIS_PORT

NDIS_PROTOCOL_RESTART_PARAMETERS NDIS_PROTOCOL_PAUSE_PARAMETERS

NDIS_RESTART_ATTRIBUTES

NDIS_SWITCH_PARAMETERS

NET_PNP_EVENT_NOTIFICATION

NdisCompleteNetPnPEvent

NdisIMInitializeDeviceInstanceEx

ProtocolBindAdapterEx

ProtocolNetPnPEvent

Mengkueri Konfigurasi Sakelar Yang Dapat Diperluas Hyper-V