Compartilhar via


NdisMEthIndicateReceive

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa função notifica NDIS que um pacote Ethernet, ou alguns parte look-ahead inicial do pacote, chegou para que possa NDIS ENC o pacote para ligado protocolos.

Syntax

VOID NdisMEthIndicateReceive(
  NDIS_HANDLE MiniportAdapterHandle,
  NDIS_HANDLE MiniportReceiveContext,
  PVOID HeaderBuffer,
  UINT HeaderBufferSize,
  PVOID LookaheadBuffer,
  UINT LookaheadBufferSize,
  UINT PacketSize
);

Parameters

  • MiniportAdapterHandle
    [no] Manipular originalmente entrada para o MiniportInitialize função.
  • MiniportReceiveContext
    [no] Identificador de contexto fornecido pelo chamador. NDIS Retorna este identificador como um parâmetro de entrada para a MiniportTransferData função se ele for chamado. A miniporta pode usar a área contexto designada por este identificador para determinar qual pacote está sendo recebido no qual NIC.
  • HeaderBuffer
    [no] Especifica o endereço virtual de base do armazenada em buffer cabeçalho pacote.
  • HeaderBufferSize
    [no] Especifica o tamanho, em bytes, do cabeçalho de pacote.
  • LookaheadBuffer
    [no] Especifica o endereço virtual de base de uma reserva contendo o inicial LookaheadBufferSize bytes dos dados no pacote.
  • LookaheadBufferSize
    [no] Especifica o tamanho, em bytes, da reserva look-ahead. Este valor deve ser pelo menos tão grande como definir o tamanho look-ahead quando o MiniportSetInformation função foi chamado com OID_GEN_CURRENT_LOOKAHEAD ou tão grande quanto o pacote, que é menor. Quando o pacote é menor do que o tamanho look-ahead, look-ahead a reserva contém o quadro inteiro.

    Uma miniporta defina este parâmetro como algo maior do que o mínimo exigido, se suficientes recebeu dados dados estará disponível no seu NIC.

  • PacketSize
    [no] Especifica o tamanho, em bytes, de dados de pacote recebido. Este valor não inclui o HeaderBufferSize.

    Quando este parâmetro é maior do que o especificado LookaheadBufferSize, chamar um driver protocolo para o NdisTransferData função faz com que um chamar subseqüente para o MiniportTransferData função, que transfere os dados restantes no pacote.

Return Value

Nenhum.

Remarks

NdisMEthIndicateReceive deve ser chamado a partir de segmento mesmo que inicializado o identificador para seu adaptador. Se ele for chamado de um segmento diferente, o driver NDIS terá um bloqueio segmento.

Quando usa um driver de miniporta NdisMEthIndicateReceive, ele deve também chamar NdisMEthIndicateReceiveComplete. NdisMEthIndicateReceiveComplete Eventualmente chama a pilha protocolo e libera os pacotes finais.

Uma miniporta chama essa função se ele designa seu NIC as of tipo NdisMedium802_3 ou NdisMediumDix em resposta para o OID_GEN_MEDIA_IN_USE consulta, a menos que a miniporta indica recebe com o NdisMIndicateReceivePacket função.

Quando uma miniporta chama essa função, NDIS passa um ponteiro para o cabeçalho de pacote e um ponteiro a algumas ou todas os dados no pacote para o ProtocolReceive função de ligado drivers protocolo. Cada protocolo que recebe a indicação pode fazer o seguinte:

  • Inspecione o cabeçalho e dados no pacote para decidir se a indicação seja de interesse para os clientes do protocolo.
  • Se for, copiar o máximo do cabeçalho ou dados que esteja visível em memória Protocol-allocated com o NdisMoveMemory função.
  • Obter os dados restantes, se houver, para a indicação por alocar um descritor pacote com descritores reserva encadeado suficientes e chamado de NdisTransferData função. A chamar para NdisTransferData Faz com que do o driver NIC MiniportTransferData função para copiar os dados para o pacote Protocol-supplied.

Para qualquer driver protocolo que recebe uma indicação por essa função, o HeaderBuffer e LookaheadBuffer Os parâmetros são válido apenas durante a atual chamar a sua ProtocolReceive função e esses buffers são somente leitura. Um driver protocolo não pode reter um ponteiro para o pacote indicada com esses associado buffers, nem pode ele reter os ponteiros para esses buffers para uso posterior. Quaisquer dados que um driver protocolo precisa de tal um pacote devem ser copiados e salvo durante a indicação de recebimento.

Os dados no cabeçalho é o mesmo que que recebeu no NIC. Uma miniporta não precisa remover qualquer cabeçalhos ou marcadores a partir de dados que recebe sua NIC.

O driver de transmissão adiciona preenchimento a qualquer pacote que é muito Short for os requisitos de médio porte. A miniporta de recebimento pode incluir tal preenchimento na dados e comprimento que ela indica posteriormente. Cada ligado protocolo é responsável por detectar qualquer tal preenchimento e ignorando-lo.

Requirements

Header ndis.h
Library ndis.dll
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

MiniportInitialize
MiniportTransferData
MiniportSetInformation
NdisMEthIndicateReceiveComplete
NdisMIndicateReceivePacket
NdisMoveMemory
NdisTransferData
OID_GEN_CURRENT_LOOKAHEAD
OID_GEN_MEDIA_IN_USE
ProtocolReceive