NDIS_PD_ALLOCATE_COUNTER funzione di callback (ndis.h)
La piattaforma PacketDirect (PD) chiama la funzione NdisPDAllocateCounter con supporto per il PD per allocare un oggetto contatore. Esistono tre tipi di contatori:
- I contatori della coda di ricezione vengono usati per il rilevamento dell'attività della coda di ricezione.
- I contatori della coda di trasmissione vengono usati per il rilevamento dell'attività della coda di trasmissione.
- I contatori dei filtri vengono usati per l'attività di corrispondenza del filtro di rilevamento.
Sintassi
NDIS_PD_ALLOCATE_COUNTER NdisPdAllocateCounter;
NTSTATUS() NdisPdAllocateCounter(
[in] NDIS_PD_PROVIDER_HANDLE ProviderHandle,
[in] const NDIS_PD_COUNTER_PARAMETERS *CounterParameters,
[out] NDIS_PD_COUNTER_HANDLE *CounterHandle
)
{...}
Parametri
[in] ProviderHandle
Handle del provider che identifica l'oggetto provider del driver con supporto per PD.
[in] CounterParameters
Struttura NDIS_PD_COUNTER_PARAMETERS che specifica informazioni come il tipo di contatore.
[out] CounterHandle
Puntatore a una variabile di gestione del contatore allocata del driver. Se l'allocazione del contatore ha esito positivo, il driver miniport restituisce un handle al contatore appena allocato in questa variabile.
Valore restituito
NdisPDAllocateCounter può restituire uno dei valori di stato seguenti:
Codice restituito | Descrizione |
---|---|
|
Il driver miniport ha allocato correttamente il contatore e ha restituito un handle nel parametro CounterHandle . |
|
L'allocazione non è riuscita a causa di risorse insufficienti. |
Commenti
Lo stesso oggetto contatore può essere associato a più oggetti coda o filtro dello stesso tipo del contatore. Ad esempio, se sono presenti 5 code di ricezione (RQ1 tramite RQ5) e 2 contatori di ricezione (RC1 e RC2), il contatore di ricezione RC1 potrebbe essere associato a code di ricezione RQ1, RQ2, RQ3 e contatore di ricezione RC2 potrebbe essere associato alle code di ricezione RQ4 e RQ5.
Esempi
Per definire una funzione NdisPDAllocateCounter , è 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 NdisPDAllocateCounter denominata "MyPDAllocateCounter ", usare il tipo NDIS_PD_ALLOCATE_COUNTER come illustrato in questo esempio di codice:
NDIS_PD_ALLOCATE_COUNTER MyPDAllocateCounter;
Implementare quindi la funzione come indicato di seguito:
_Use_decl_annotations_
NTSTATUS
MyPDAllocateCounter(
NDIS_PD_PROVIDER_HANDLE ProviderHandle,
CONST NDIS_PD_COUNTER_PARAMETERS* CounterParameters,
NDIS_PD_COUNTER_HANDLE* CounterHandle
)
{...}
Il tipo di funzione NDIS_PD_ALLOCATE_COUNTER è definito nel file di intestazione Ntddndis.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 NDIS_PD_ALLOCATE_COUNTER 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 | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Piattaforma di destinazione | Windows |
Intestazione | ndis.h |
IRQL | PASSIVE_LEVEL |