Condividi tramite


PROTOCOL_CO_STATUS_EX funzione di callback (ndis.h)

La funzione ProtocolCoStatusEx indica le modifiche dello stato dai driver orientati alla connessione sottostanti o da NDIS.

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

Sintassi

PROTOCOL_CO_STATUS_EX ProtocolCoStatusEx;

void ProtocolCoStatusEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

Parametri

[in] ProtocolBindingContext

Handle per un'area di contesto allocata dal driver di protocollo. Il driver di protocollo gestisce le informazioni sul contesto per associazione in questa area di contesto. Il driver ha fornito questo handle a NDIS quando il driver ha chiamato la funzione NdisOpenAdapterEx .

[in] ProtocolVcContext

Handle per un'area di contesto allocata dal driver di protocollo in cui il driver di protocollo gestisce le informazioni sullo stato di runtime della connessione virtuale (VC). Se l'indicazione di stato non è specifica di VC, questo parametro è NULL. In caso contrario, il driver di protocollo ha originariamente fornito questo handle quando ha chiamato la funzione NdisCoCreateVc o dalla relativa funzione ProtocolCoCreateVc .

[in] StatusIndication

Puntatore a una struttura NDIS_STATUS_INDICATION contenente le informazioni sullo stato.

Valore restituito

nessuno

Osservazioni

NDIS chiama ProtocolCoStatusEx per notificare a un driver di protocollo le modifiche apportate allo stato di un driver CoNDIS sottostante. Un handle VC NULL per il parametro ProtocolVcContext indica una modifica dello stato non specifica di un vc. Per un handle VC non NULL , NDIS limita la notifica di stato ai client o ai gestori di chiamate che condividono questo handle vc.

NDIS serializza le indicazioni di stato per ogni associazione di protocollo. Per determinare lo stato del collegamento, usare le indicazioni sullo stato dei driver sottostanti anziché le query OID. Queste indicazioni sullo stato miglioreranno le prestazioni del sistema ed eviteranno possibili race condition.

NDIS chiama ProtocolCoStatusEx in IRQL <= DISPATCH_LEVEL.

Esempi

Per definire una funzione ProtocolCoStatusEx , è innanzitutto 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 con i tipi di funzione consente di eseguire l'analisi del codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica rilevano gli errori ed è un requisito per la scrittura dei driver per il sistema operativo Windows.

Ad esempio, per definire una funzione ProtocolCoStatusEx denominata "MyCoStatusEx", usare il tipo di PROTOCOL_CO_STATUS_EX come illustrato nell'esempio di codice seguente:

PROTOCOL_CO_STATUS_EX MyCoStatusEx;

Implementare quindi la funzione come segue:

_Use_decl_annotations_
VOID
 MyCoStatusEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_HANDLE  ProtocolVcContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

Il tipo di funzione PROTOCOL_CO_STATUS_EX è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori quando si eseguono gli 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 utilizzate le annotazioni applicate al tipo di funzione PROTOCOL_CO_STATUS_EX nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo di funzione per i driver NDIS.

Per informazioni sulle 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 (include Ndis.h)
IRQL <= DISPATCH_LEVEL (vedere la sezione Osservazioni)

Vedi anche

NDIS_STATUS_INDICATION

NdisCoCreateVc

NdisOpenAdapterEx

ProtocolCoCreateVc