Fungsi NdisMNetPnPEvent (ndis.h)
Driver miniport NDIS (dan driver perantara yang terdaftar sebagai driver miniport) memanggil fungsi NdisMNetPnPEvent untuk memulai peristiwa Plug and Play jaringan, peristiwa PnP NDIS, atau peristiwa Power Management atau menyebarkannya ke driver yang terlalu berlebihan.
Sintaks
NDIS_STATUS NdisMNetPnPEvent(
[in] NDIS_HANDLE MiniportAdapterHandle,
PNET_PNP_EVENT_NOTIFICATION NetPnPEventNotification
);
Parameter
[in] MiniportAdapterHandle
Handel NDIS yang disediakan NDIS pada parameter MiniportAdapterHandle dari fungsi MiniportInitializeEx . Handel ini mengidentifikasi adaptor miniport yang terpengaruh oleh peristiwa. Jika pemanggil adalah driver perantara, ini adalah handel dari miniport virtual.
NetPnPEventNotification
Penunjuk ke NET_PNP_EVENT_NOTIFICATION struktur, yang menjelaskan peristiwa Plug and Play jaringan, peristiwa PnP NDIS, atau peristiwa Power Management.
Penting
Jika bidang VPortIddari NetPnpEventNotification diatur ke nilai yang berbeda dari NDIS_DEFAULT_VPORT_ID, maka anggota Bendera harus diatur ke NET_EVENT_FLAGS_VPORT_ID_VALID agar VPortId berlaku.
Mengembalikan nilai
NdisMNetPnPEvent dapat mengembalikan hal berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Driver yang terlalu berlebihan berhasil memproses peristiwa Plug and Play atau Power Management. |
|
Driver yang terlalu berlebihan tidak dapat memperoleh sumber daya sistem yang diperlukan untuk memenuhi peristiwa Plug and Play atau Power Management yang ditunjukkan. |
|
NDIS gagal dalam panggilan karena beberapa parameter input tidak valid. |
|
Driver protokol NDIS 6.0 dan yang lebih baru tidak boleh mengembalikan status ini. Sebuah NDIS 5. driver protokol x yang tidak mendukung Plug and Play dapat mengembalikan status ini sebagai respons terhadap NetEventSetPower untuk menunjukkan bahwa NDIS harus membatalkan ikatannya dari adaptor yang mendasar. |
|
NDIS gagal dalam permintaan karena port NDIS yang tidak valid ditentukan dalam peristiwa PnP NetEventPortActivation atau NetEventPortDeactivation . |
|
NDIS gagal dalam permintaan karena port NDIS berada dalam status port tidak valid. Port ditentukan dalam peristiwa NetEventPortActivation atau NetEventPortDeactivation PnP. |
|
Upaya driver yang terlalu berlebihan untuk memproses peristiwa Plug and Play atau Power Management yang disebarkan gagal. |
Nilai yang dikembalikan hanya signifikan ketika peristiwa yang disebarkan adalah peristiwa NetEventQueryPower atau NetEventQueryRemoveDevice . Untuk semua peristiwa lain yang disebarkan, nilai yang dikembalikan selalu NDIS_STATUS_SUCCESS.
Jika peristiwanya adalah NetEventPortActivation dan panggilan gagal, pemanggil tidak boleh menggunakan port terkait dalam indikasi penerimaan atau indikasi status.
Keterangan
Setiap driver miniport dapat memanggil NdisMNetPnPEvent untuk menghasilkan peristiwa NetEventPortActivation dan NetEventPortDeactivation . Hanya driver perantara yang dapat membuat pemberitahuan peristiwa lainnya.
- Fungsi MiniportOidRequest-nya tidak boleh memanggil NdisMNetPnPEvent.
- Jika fungsi MiniportOidRequest mengembalikan NDIS_STATUS_PENDING untuk permintaan OID, driver NDIS tidak boleh memanggil NdisMNetPnPEvent sampai setelah menyelesaikan permintaan OID dengan memanggil NdisMOidRequestComplete.
Jika peristiwa yang disebarkan adalah NetEventQueryPower atau NetEventQueryRemoveDevice, driver perantara harus memeriksa nilai NDIS_STATUS yang dikembalikan oleh NdisMNetPnPEvent. Jika status yang dikembalikan NDIS_STATUS_SUCCESS, driver perantara harus menangani peristiwa dan kemudian mengembalikan NDIS_STATUS_SUCCESS dari fungsi ProtocolNetPnPEvent-nya . Jika status yang dikembalikan tidak NDIS_STATUS_SUCCESS, driver perantara harus mengembalikan status yang dilaporkan dari fungsi ProtocolNetPnPEvent tanpa pemrosesan lebih lanjut.
Bagaimana driver perantara memproses NetEventSetPower yang diterima oleh fungsi ProtocolNetPnPEvent tergantung pada status daya perangkat yang ditentukan. Jika status daya perangkat yang ditentukan adalah NdisDeviceStateD0, driver perantara harus menangani peristiwa lalu memanggil NdisMNetPnPEvent. Untuk status daya perangkat tertentu lainnya, driver perantara harus terlebih dahulu memanggil NdisMNetPnPEvent lalu menangani peristiwa.
Driver perantara harus memanggil NdisMNetPnPEvent untuk menyebarluaskan NetEventReconfigure atau NetEventBindList hanya jika NetEventReconfigure atau NetEventBindList ditunjukkan pada Protokol non-NULLBindingContext. Jika NetEventReconfigure atau NetEventBindList ditunjukkan pada PROTOKOL NULLBindingContext, driver perantara tidak boleh memanggil NdisMNetPnPEvent untuk menyebarluaskan peristiwa.
Jika driver perantara menangani NetEventReconfigure atau NetEventBindList, driver perantara harus memvalidasi data apa pun yang terkait dengan peristiwa tersebut.
Driver perantara tidak boleh menyebarluaskan peristiwa NetEventBindsComplete, NetEventPause, NetEventRestart, NetEventPortActivation, atau NetEventPortDeactivation dengan memanggil NdisMNetPnPEvent.
Driver perantara NDIS dapat menghasilkan peristiwa port NDIS sendiri untuk miniport virtual yang sesuai untuk peristiwa NetEventPortActivation atau NetEventPortDeactivation yang diterimanya pada fungsi ProtocolNetPnPEvent - nya.
Untuk semua peristiwa yang disebarkan lainnya, fungsi ProtocolNetPnPEvent driver menengah harus menyebarluaskan nilai status yang dikembalikan oleh NdisMNetPnPEvent.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.0 dan yang lebih baru. |
Target Platform | Universal |
Header | ndis.h (termasuk Ndis.h) |
Pustaka | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | Irql_Protocol_Driver_Function(ndis), NdisMNetPnPEventInOIDRequest(ndis) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk