Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta seção descreve o layout da memória compartilhada nos buffers de recebimento VMQ. Para obter mais informações sobre como usar os buffers em indicações de recebimento, consulte VMQ Receive Path.
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 a um deslocamento igual ou maior que o tamanho de lookahead solicitado e usar DMA para transferir os dados lookahead e os dados pós-lookahead para segmentos de memória compartilhada separados.
Os drivers de miniporta 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 miniporta chama a função NdisAllocateSharedMemory e define o membro Usage na estrutura NDIS_SHARED_MEMORY_PARAMETERS como NdisSharedMemoryUsageReceiveLookahead. Os drivers de miniporta devem alocar memória compartilhada para uma fila quando a alocação da fila estiver 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 para os dados de rede quando os dados de entrada são divididos em dois buffers de memória compartilhada.
A estrutura NET_BUFFER_SHARED_MEMORY especifica informações de memória compartilhada. Pode haver uma lista vinculada desses buffers de memória compartilhada que estão 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 NET_BUFFER. O membro SharedMemoryInfo da estrutura NET_BUFFER contém a primeira estrutura NET_BUFFER_SHARED_MEMORY na lista vinculada.
Nota A partir do NDIS 6.30, a divisão dos dados de pacotes em buffers de antecipação separados não é mais suportada. 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.