NDK_SGE estrutura (ndkpi.h)
A estrutura NDK_SGE especifica os buffers locais para solicitações de trabalho do NDK.
Sintaxe
typedef struct _NDK_SGE {
union {
PVOID VirtualAddress;
NDK_LOGICAL_ADDRESS LogicalAddress;
};
ULONG Length;
UINT32 MemoryRegionToken;
} NDK_SGE;
Membros
VirtualAddress
Um endereço virtual.
LogicalAddress
Um endereço lógico.
Length
O comprimento, em bytes, do buffer.
MemoryRegionToken
Um token de região de memória. Quando MemoryRegionToken é definido como o token retornado por NdkGetPrivilegedMemoryRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN), o NDK_SGE deve conter um LogicalAddress. Quando MemoryRegionToken não é igual ao token retornado por NdkGetPrivilegedMemoryRegionToken, a estrutura NDK_SGE deve conter um VirtualAddress. Quando uma estrutura de NDK_SGE é usada em uma solicitação de trabalho com o sinalizador NDK_OP_FLAG_INLINE, MemoryRegionToken pode ser inválido. Consulte a seção comentários para obter mais informações sobre o MemoryRegionToken.
Observações
A estrutura NDK_SGE especifica os buffers locais para enviar, receber, ler e gravar solicitações de trabalho.
Quando o membro MemoryRegionToken é definido como o token retornado pelo NdkGetPrivilegedMemoryRegionRegionToken (NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN), o NDK_SGE deve conter um endereço lógico retornado pela função NdkBuildLam (NDK_FN_BUILD_LAM) com a estrutura NDK_LOGICAL_ADDRESS_MAPPING. Observe que as entradas consecutivas no AdapterPageArray membro de um NDK_LOGICAL_ADDRESS_MAPPING não são necessariamente páginas contíguas no espaço de endereço lógico do adaptador. Portanto, um consumidor do NDK pode usar vários SGEs para cobrir todas as páginas em uma matriz de páginas do adaptador.
Quando o token no membro MemoryRegionToken não é igual ao token retornado por NdkGetPrivilegedMemoryRegionToken, a estrutura NDK_SGE deve conter um endereço virtual que esteja dentro do intervalo de endereço virtual de uma região de memória registrada anteriormente.
Quando uma estrutura de NDK_SGE é usada em uma solicitação de trabalho com o sinalizador NDK_OP_FLAG_INLINE, o token em MemoryRegionToken pode ser inválido, portanto, ele deve ser ignorado pelo provedor NDK. Quando o sinalizador NDK_OP_FLAG_INLINE for especificado, o VirtualAddress membro de qualquer estrutura de NDK_SGE que seja passada para a função de solicitação de trabalho deve apontar para um buffer que pode ser acessado pelo provedor NDK em um IRQL menor ou igual a DISPATCH_LEVEL, Ou seja, o buffer deve ter a garantia de residir na memória física até que a função de solicitação de trabalho retorne. O tamanho total dos dados embutidos que são passados para o provedor em uma única chamada não deve exceder o valor no parâmetro InlineDataSize especificado quando o par de filas (QP) foi criado.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Nenhum com suporte, com suporte no NDIS 6.30 e posterior. |
servidor com suporte mínimo | Windows Server 2012 |
cabeçalho | ndkpi.h (inclua Ndkpi.h) |
Consulte também
requisitos de tempo de vida do objeto NDKPI