Condividi tramite


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.

Fabbisogno

Requisito Valore
intestazione ndis.h (include Ndis.h)
libreria Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Vedere anche