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
NDIS_STATUS_SUCCESS
Driver yang terlalu berlebihan berhasil memproses peristiwa Plug and Play atau Power Management.
NDIS_STATUS_RESOURCES
Driver yang terlalu berlebihan tidak dapat memperoleh sumber daya sistem yang diperlukan untuk memenuhi peristiwa Plug and Play atau Power Management yang ditunjukkan.
NDIS_STATUS_INVALID_PARAMETER
NDIS gagal dalam panggilan karena beberapa parameter input tidak valid.
NDIS_STATUS_NOT_SUPPORTED
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_STATUS_INVALID_PORT
NDIS gagal dalam permintaan karena port NDIS yang tidak valid ditentukan dalam peristiwa PnP NetEventPortActivation atau NetEventPortDeactivation .
NDIS_STATUS_INVALID_PORT_STATE
NDIS gagal dalam permintaan karena port NDIS berada dalam status port tidak valid. Port ditentukan dalam peristiwa NetEventPortActivation atau NetEventPortDeactivation PnP.
NDIS_STATUS_FAILURE
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.

Catatan Untuk mencegah kebuntuan, driver NDIS harus melakukan hal berikut:
 
Untuk menyebarluaskan pemberitahuan peristiwa Plug and Play jaringan, peristiwa PnP NDIS, atau peristiwa Power Management ke driver yang terlalu berlebih, driver perantara NDIS memanggil NdisMNetPnPEvent dalam konteks fungsi ProtocolNetPnPEvent driver.

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

MiniportInitializeEx

MiniportOidRequest

NET_PNP_EVENT_NOTIFICATION

ProtocolNetPnPEvent