Funzione NdisGetDataBuffer (ndis/nblapi.h)
Chiamare la funzione NdisGetDataBuffer per ottenere l'accesso a un blocco contiguo di dati da una struttura NET_BUFFER .
Sintassi
NDIS_EXPORTED_ROUTINE PVOID NdisGetDataBuffer(
[in] NET_BUFFER *NetBuffer,
[in] ULONG BytesNeeded,
[in, optional] PVOID Storage,
[in] ULONG AlignMultiple,
[in] ULONG AlignOffset
);
Parametri
[in] NetBuffer
Puntatore a una struttura NET_BUFFER.
[in] BytesNeeded
Numero di byte contigui di dati richiesti.
[in, optional] Storage
Puntatore a un buffer o NULL se nessun buffer viene fornito dal chiamante. Il buffer deve essere maggiore o uguale alla dimensione del numero di byte specificato in ByteNeeded . Se questo valore è diverso da NULL e i dati richiesti non sono contigui, NDIS copia i dati richiesti nell'area indicata da Archiviazione .
[in] AlignMultiple
Il multiplo di allineamento espresso in potenza di due. Ad esempio, 2, 4, 8, 16 e così via. Se AlignMultiple è 1, non esiste alcun requisito di allineamento.
[in] AlignOffset
Offset, in byte, dal multiplo di allineamento.
Valore restituito
NdisGetDataBuffer restituisce un puntatore all'inizio dei dati contigui o restituisce NULL.
Se il membro DataLength della struttura NET_BUFFER_DATA nella struttura NET_BUFFER a cui punta il parametro NetBuffer è minore del valore nel parametro BytesNeededed , il valore restituito è NULL.
Se i dati richiesti nel buffer sono contigui, il valore restituito è un puntatore a una posizione fornita da NDIS. Se i dati non sono contigui, NDIS usa il parametro Storage come indicato di seguito:
- Se il parametro Storage è diverso da NULL, NDIS copia i dati nel buffer in Archiviazione. Il valore restituito è il puntatore passato al parametro Storage .
- Se il parametro Storage è NULL, il valore restituito è NULL.
Commenti
Chiamare questa funzione per ottenere un puntatore a un'intestazione di dati di rete contenuta nella struttura NET_BUFFER . È possibile analizzare facilmente l'intestazione archiviata nel blocco di dati contiguo restituito da questa funzione.
Il requisito di allineamento richiesto viene espresso come potenza di due multipli più un offset. Ad esempio, se AlignMultiple è 4 e AlignOffset è 3, l'indirizzo dati deve essere un multiplo di 4 più 3. Se necessario, NDIS allocherà memoria per soddisfare il requisito di allineamento.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | ndis/nblapi.h (include ndis.h) |
Libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | Irql_NetBuffer_Function(ndis) |