Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta seção descreve o layout da memória compartilhada em buffers de recebimento do VMQ. Para obter mais informações sobre como usar os buffers em indicações de recebimento, consulte o Caminho de Recebimento do VMQ.
Se o driver de protocolo sobreposto definir o sinalizador NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED no membro Flags da estrutura NDIS_RECEIVE_QUEUE_PARAMETERS, o adaptador de rede deverá dividir um pacote recebido em um deslocamento igual ou superior ao tamanho do lookahead solicitado e usar o DMA para transferir os dados lookahead e os dados pós-lookahead para segmentos separados de memória compartilhada.
Os drivers de miniport especificam as configurações para o tipo lookahead (NdisSharedMemoryUsageReceiveLookahead) ou outros tipos de memória compartilhada quando a memória compartilhada é alocada. Por exemplo, o driver de miniporto chama a função NdisAllocateSharedMemory e define o membro Usage na estrutura NDIS_SHARED_MEMORY_PARAMETERS como NdisSharedMemoryUsageReceiveLookahead. Os miniport drivers precisam alocar memória compartilhada para uma fila quando a alocação da fila for concluída. Para obter informações sobre como alocar e liberar recursos de memória compartilhada para filas, consulte Alocação de Recursos de Memória Compartilhada.
A ilustração a seguir mostra as relações dos dados de rede quando os dados de entrada são divididos em dois buffers de memória compartilhados.
A estrutura NET_BUFFER_SHARED_MEMORY especifica informações de memória compartilhadas. Pode haver uma lista vinculada de buffers de memória compartilhados associados a uma estrutura NET_BUFFER .
Use as macros NET_BUFFER_SHARED_MEM_NEXT_SEGMENT, NET_BUFFER_SHARED_MEM_FLAGS, NET_BUFFER_SHARED_MEM_HANDLE, NET_BUFFER_SHARED_MEM_OFFSET e NET_BUFFER_SHARED_MEM_LENGTH para acessar o NET_BUFFER_SHARED_MEMORY em uma estrutura de NET_BUFFER. O membro SharedMemoryInfo da estrutura NET_BUFFER contém a primeira estrutura de NET_BUFFER_SHARED_MEMORY na lista vinculada.
Nota A partir do NDIS 6.30, não há mais suporte para dividir os dados de pacotes em buffers lookahead separados. A partir do Windows Server 2012, o driver de protocolo superior não definirá o sinalizador NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED no membro Flags da estrutura NDIS_RECEIVE_QUEUE_PARAMETERS.