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 .
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 |