Condividi tramite


MINIPORT_DEVICE_PNP_EVENT_NOTIFY funzione di callback (ndis.h)

NDIS chiama la funzione MiniportDevicePnPEventNotify di un driver miniport per informare il driver di eventi Plug and Play (PnP).

Nota È necessario dichiarare la funzione usando il tipo di MINIPORT_DEVICE_PNP_EVENT_NOTIFY . Per altre informazioni, vedere la sezione Esempi seguenti.
 

Sintassi

MINIPORT_DEVICE_PNP_EVENT_NOTIFY MiniportDevicePnpEventNotify;

void MiniportDevicePnpEventNotify(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}

Parametri

[in] MiniportAdapterContext

Handle in un'area di contesto allocata dal driver miniport nella funzione MiniportInitializeEx . Il driver miniport usa questa area di contesto per mantenere le informazioni sullo stato per un adattatore miniport.

[in] NetDevicePnPEvent

Puntatore a una struttura NET_DEVICE_PNP_EVENT che descrive un evento di Plug and Play dispositivo.

Valore restituito

nessuno

Osservazioni

Un driver specifica il punto di ingresso MiniportDevicePnPEventNotify quando chiama Funzione NdisMRegisterMiniportDriver .

NDIS chiama la funzione MiniportDevicePnPEventNotify del driver con il membro DevicePnPEvent del parametro NetDevicePnPEvent impostato su NdisDevicePnPEventPowerProfileChanged dopo uno degli eventi seguenti:

  • L'inizializzazione del driver è completata.
  • Il driver ha ricevuto una notifica di OID_PNP_SET_POWER che specifica lo stato attivato ( NdisDeviceStateD0).
Nel secondo caso, il valore in InformationBuffer indica se il sistema è in esecuzione sulla batteria (NdisPowerProfileBattery) o l'alimentazione AC (NdisPowerProfileAcOnline). Un driver può usare queste informazioni per regolare il consumo di energia dell'adattatore miniport specificato. Ad esempio, il driver per un dispositivo LAN wireless potrebbe ridurre il consumo di energia se il sistema è in esecuzione sulla potenza della batteria o aumentare il consumo di energia se il sistema è in esecuzione su alimentazione AC.

Quando un driver riceve una notifica di rimozione delle sorprese (il membro DevicePnPEvent del parametro NetDevicePnPEvent è NdisDevicePnPEventSurpriseRemoved), deve:

  • Si noti internamente che il dispositivo è stato rimosso.
  • Annullare eventuali IRP in sospeso inviati al driver del bus sottostante.
Dopo che NDIS chiama la funzione MiniportDevicePnPEventNotify per indicare una rimozione a sorpresa, NDIS chiama la funzione MiniportHaltEx del driver. Se il driver riceve richieste di invio o richieste OID prima di NDIS chiama MiniportHaltEx, deve completare immediatamente tali richieste con un valore di stato di NDIS_STATUS_NOT_ACCEPTED.

NDIS chiama MiniportDevicePnPEventNotify in IRQL = PASSIVE_LEVEL.

Esempi

Per definire una funzione MiniportDevicePnPEventNotify , è prima necessario fornire una dichiarazione di funzione che identifica il tipo di funzione che si sta definendo. Windows fornisce un set di tipi di funzione per i driver. La dichiarazione di una funzione usando i tipi di funzione consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una funzione MiniportDevicePnPEventNotify denominata "MyDevicePnPEventNotify", usare il tipo di MINIPORT_DEVICE_PNP_EVENT_NOTIFY come illustrato in questo esempio di codice:

MINIPORT_DEVICE_PNP_EVENT_NOTIFY MyDevicePnPEventNotify;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyDevicePnPEventNotify(
    NDIS_HANDLE  MiniportAdapterContext,
    PNET_DEVICE_PNP_EVENT  NetDevicePnPEvent
    )
  {...}

Il tipo di funzione MINIPORT_DEVICE_PNP_EVENT_NOTIFY è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano usate le annotazioni applicate al tipo di funzione MINIPORT_DEVICE_PNP_EVENT_NOTIFY nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver NDIS.

Per informazioni su Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Windows
Intestazione ndis.h (includere Ndis.h)
IRQL PASSIVE_LEVEL
Regole di conformità DDI NdisOidComplete

Vedi anche

MiniportHaltEx

MiniportInitializeEx

NET_DEVICE_PNP_EVENT

NdisMRegisterMiniportDriver

OID_PNP_SET_POWER