NdisGetDataBuffer, fonction (ndis/nblapi.h)
Appelez la fonction NdisGetDataBuffer pour accéder à un bloc de données contigu à partir d’une structure NET_BUFFER .
Syntaxe
NDIS_EXPORTED_ROUTINE PVOID NdisGetDataBuffer(
[in] NET_BUFFER *NetBuffer,
[in] ULONG BytesNeeded,
[in, optional] PVOID Storage,
[in] ULONG AlignMultiple,
[in] ULONG AlignOffset
);
Paramètres
[in] NetBuffer
Pointeur vers une structure NET_BUFFER.
[in] BytesNeeded
Nombre d’octets contigus de données demandées.
[in, optional] Storage
Pointeur vers une mémoire tampon, ou NULL si aucune mémoire tampon n’est fournie par l’appelant. La mémoire tampon doit être supérieure ou égale à la taille du nombre d’octets spécifié dans BytesNeeded . Si cette valeur n’est pas NULL et que les données demandées ne sont pas contiguës, NDIS copie les données demandées dans la zone indiquée par Stockage.
[in] AlignMultiple
Alignement multiple exprimé en puissance de deux. Par exemple, 2, 4, 8, 16, etc. Si AlignMultiple est 1, il n’existe aucune exigence d’alignement.
[in] AlignOffset
Décalage, en octets, du multiple d’alignement.
Valeur retournée
NdisGetDataBuffer retourne un pointeur vers le début des données contiguës ou retourne NULL.
Si le membre DataLength de la structure NET_BUFFER_DATA dans la structure NET_BUFFER vers laquelle pointe le paramètre NetBuffer est inférieur à la valeur du paramètre BytesNeeded , la valeur de retour est NULL.
Si les données demandées dans la mémoire tampon sont contiguës, la valeur de retour est un pointeur vers un emplacement fourni par NDIS. Si les données ne sont pas contiguës, NDIS utilise le paramètre Stockage comme suit :
- Si le paramètre Stockage n’est pas NULL, NDIS copie les données dans la mémoire tampon à Stockage. La valeur de retour est le pointeur passé au paramètre Stockage.
- Si le paramètre Stockage a la valeur NULL, la valeur de retour est NULL.
Remarques
Appelez cette fonction pour obtenir un pointeur vers un en-tête de données réseau contenu dans la structure NET_BUFFER . Vous pouvez facilement analyser l’en-tête stocké dans le bloc de données contigu que cette fonction retourne.
L’exigence d’alignement demandée est exprimée sous la forme d’une puissance de deux multiples et d’un décalage. Par exemple, si AlignMultiple est 4 et AlignOffset est 3, l’adresse de données doit être un multiple de 4 plus 3. Si nécessaire, NDIS alloue de la mémoire pour répondre à l’exigence d’alignement.
Spécifications
Client minimal pris en charge | Pris en charge dans NDIS 6.0 et versions ultérieures. |
Plateforme cible | Universal |
En-tête | ndis/nblapi.h (include ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | Irql_NetBuffer_Function(ndis) |
Voir aussi
Commentaires
Envoyer et afficher des commentaires pour