Condividi tramite


MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE funzione di callback (ndis.h)

NDIS chiama la funzione MiniportSharedMemoryAllocateComplete di un driver miniport per completare una richiesta di allocazione di memoria condivisa avviata dal driver miniport chiamando il Funzione NdisMAllocateSharedMemoryAsyncEx .

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

Sintassi

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MiniportAllocateSharedMemComplete;

void MiniportAllocateSharedMemComplete(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID VirtualAddress,
  [in] PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in] ULONG Length,
  [in] PVOID Context
)
{...}

Parametri

[in] MiniportAdapterContext

Handle in un'area di contesto allocata dal driver miniport in cui il driver gestisce le informazioni sullo stato per una scheda di interfaccia di rete. Il driver alloca questa area di contesto nell'oggetto Funzione MiniportInitializeEx .

[in] VirtualAddress

Indirizzo virtuale di base della memoria condivisa allocata dal driver miniport chiamando NdisMAllocateSharedMemoryAsyncEx. VirtualAddress è NULL se il tentativo di allocazione ha avuto esito negativo.

[in] PhysicalAddress

Indirizzo fisico di base per l'interfaccia di interfaccia di rete da usare mappato all'indirizzo specificato dal parametro VirtualAddress .

[in] Length

Numero di byte allocati da NdisMAllocateSharedMemoryAsyncEx .

[in] Context

Puntatore a un'area di contesto specificata dal driver miniport nella chiamata precedente a NdisMAllocateSharedMemoryAsyncEx.

Valore restituito

nessuno

Osservazioni

MiniportAllocateSharedMemoryComplete è una funzione facoltativa per i driver miniport. Un driver miniport registra una funzione MiniportAllocateSharedMemoryComplete nella struttura NDIS_SG_DMA_DESCRIPTION passata al driver Funzione NdisMRegisterScatterGatherDma .

Chiamata dei driver miniport NdisMAllocateSharedMemoryAsyncEx per allocare memoria condivisa. Se NdisMAllocateSharedMemoryAsyncEx restituisce NDIS_STATUS_PENDING, NDIS chiama MiniportAllocateSharedMemoryComplete per passare la memoria al driver miniport.

NDIS chiama MiniportSharedMemoryAllocateComplete in IRQL PASSIVE_LEVEL.

Esempi

Per definire una funzione MiniportSharedMemoryAllocateComplete , è 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 MiniportSharedMemoryAllocateComplete denominata "MySharedMemoryAllocateComplete ", usare il tipo di MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE come illustrato in questo esempio di codice:

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MySharedMemoryAllocateComplete(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  VirtualAddress,
    PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
    ULONG  Length,
    PVOID  Context
    )
  {...}

Il tipo di funzione MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE è 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_ALLOCATE_SHARED_MEM_COMPLETE 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

Vedi anche

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma