structure NDK_SGE (ndkpi.h)
La structure NDK_SGE spécifie les mémoires tampons locales pour les demandes de travail NDK.
Syntaxe
typedef struct _NDK_SGE {
union {
PVOID VirtualAddress;
NDK_LOGICAL_ADDRESS LogicalAddress;
};
ULONG Length;
UINT32 MemoryRegionToken;
} NDK_SGE;
Membres
VirtualAddress
Adresse virtuelle.
LogicalAddress
Adresse logique.
Length
Longueur, en octets, de la mémoire tampon.
MemoryRegionToken
Jeton de région de mémoire. Lorsque MemoryRegionToken est défini sur le jeton retourné par NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN), le NDK_SGE doit contenir un LogicalAddress. Quand MemoryRegionToken n’est pas égal au jeton retourné par NdkGetPrivilegedMemoryRegionToken, la structure NDK_SGE doit contenir un VirtualAddress. Lorsqu’une structure NDK_SGE est utilisée dans une requête de travail avec l’indicateur NDK_OP_FLAG_INLINE, MemoryRegionToken peut ne pas être valide. Pour plus d’informations sur la MemoryRegionToken, consultez la section notes.
Remarques
La structure NDK_SGE spécifie les mémoires tampons locales pour les demandes d’envoi, de réception, de lecture et d’écriture de travail.
Lorsque le membre MemoryRegionToken est défini sur le jeton retourné par NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN), le NDK_SGE doit contenir une adresse logique retournée par la fonction NdkBuildLam (NDK_FN_BUILD_LAM) avec la structure NDK_LOGICAL_ADDRESS_MAPPING. Notez que les entrées consécutives dans le AdapterPageArray membre d’un NDK_LOGICAL_ADDRESS_MAPPING ne sont pas nécessairement contiguës dans l’espace d’adressage logique de l’adaptateur. Par conséquent, un consommateur NDK peut utiliser plusieurs sgEs pour couvrir toutes les pages d’un tableau de pages d’adaptateur.
Lorsque le jeton de l'MemoryRegionToken membre n’est pas égal au jeton retourné par NdkGetPrivilegedMemoryRegionToken, la structure NDK_SGE doit contenir une adresse virtuelle qui se trouve dans l’étendue d’adresse virtuelle d’une région de mémoire précédemment inscrite.
Lorsqu’une structure NDK_SGE est utilisée dans une demande de travail avec l’indicateur de NDK_OP_FLAG_INLINE, le jeton dans MemoryRegionToken peut ne pas être valide. Il doit donc être ignoré par le fournisseur NDK. Lorsque l’indicateur NDK_OP_FLAG_INLINE est spécifié, le VirtualAddress membre de n’importe quelle structure NDK_SGE passée à la fonction de demande de travail doit pointer vers une mémoire tampon accessible par le fournisseur NDK à un runtime d’intégration (IRQL) inférieur ou égal à DISPATCH_LEVEL, Autrement dit, la mémoire tampon doit être garantie d’être résidente dans la mémoire physique jusqu’à ce que la fonction de demande de travail retourne. La taille totale des données inline transmises au fournisseur dans un seul appel ne doit pas dépasser la valeur dans la Paramètre InlineDataSize spécifié lors de la création de la paire de files d’attente (QP).
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Aucune prise en charge, prise en charge dans NDIS 6.30 et versions ultérieures. |
serveur minimum pris en charge | Windows Server 2012 |
d’en-tête | ndkpi.h (include Ndkpi.h) |
Voir aussi
exigences de durée de vie des objets NDKPI