Funzione NdisAllocateBuffer (ndis.h)
Nota NDIS 5. x è stato deprecato e sostituito da NDIS 6. x. Per i nuovi driver NDIS, vedere Driver di rete a partire da Windows Vista. Per informazioni sulla conversione di NDIS 5. driver x a NDIS 6. x, vedere Porting NDIS 5.x Drivers to NDIS 6.0.
NdisAllocateBuffer crea un descrittore del buffer che esegue il mapping di un intervallo virtuale (secondario) specificato all'interno di un blocco di memoria non di pagina già allocato.
Sintassi
void NdisAllocateBuffer(
[out] PNDIS_STATUS Status,
[out] PNDIS_BUFFER *Buffer,
[in, optional] NDIS_HANDLE PoolHandle,
[in] PVOID VirtualAddress,
[in] UINT Length
);
Parametri
[out] Status
Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce lo stato finale dell'allocazione del buffer, che viene NDIS_STATUS_SUCCESS se ha restituito un puntatore del descrittore di buffer valido in corrispondenza del buffer e in caso contrario NDIS_STATUS_FAILURE.
[out] Buffer
Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce un puntatore al descrittore di buffer allocato.
[in, optional] PoolHandle
Specifica l'handle restituito da una chiamata precedente a NdisAllocateBufferPool.
[in] VirtualAddress
Puntatore all'indirizzo virtuale di base della memoria dello spazio di sistema allocata in precedenza di cui eseguire il mapping nel descrittore del buffer restituito.
[in] Length
Specifica il numero di byte di cui eseguire il mapping.
Valore restituito
Nessuno
Osservazioni
Valore restituito: Nessuno
NdisAllocateBuffer alloca l'archiviazione per e inizializza un descrittore di buffer per eseguire il mapping di un intervallo specificato di memoria allocata in precedenza, ad esempio la memoria usata per un'intestazione di pacchetto o un buffer di ricezione della scheda di interfaccia di rete.
L'allocazione del descrittore del buffer si basa sul pool di buffer creato NdisAllocateBufferPool. Un driver può chiamare NdisAllocateBuffer il maggior numero di volte necessario per allocare i descrittori del buffer necessari se ha chiamato NdisAllocateBufferPool durante l'inizializzazione.
Tutti i driver NDIS di livello inferiore devono allocare tutti i descrittori di buffer concatenati ai pacchetti dal pool di buffer. Ai descrittori dipendenti dal sistema operativo è possibile assegnare solo driver di protocollo di livello più elevato che eseguono il mapping degli intervalli di memoria virtuale e, se questi descrittori di memoria sono equivalenti ai descrittori del buffer NDIS, un protocollo di livello più alto può passare tali descrittori come parametri alle funzioni di NdisXxx.
- Piattaforma di destinazione: universal
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ndis.h (include Ndis.h) |
libreria | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |