MiniportSend
9/8/2008
Essa função transfere um pacote Protocol-supplied sobre a rede.
Syntax
NDIS_STATUS MiniportSend(
NDIS_HANDLE MiniportAdapterContext,
PNDIS_PACKET Packet,
UINT Flags
);
Parameters
- MiniportAdapterContext
[no] Especifica o identificador para uma área Miniport-allocated contexto no qual o driver mantém por-estado adaptador de rede, configurar por MiniportInitialize.
- Pacote
[no] Aponta para um descritor pacote especificando os dados para serem transmitidos.
- Sinalizadores
[no] Especifica os sinalizadores pacote, se houver, definido pelo protocolo.
Return Value
A seguinte tabela mostra os valores que MiniportSend pode retornar.
Valor | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
O driver (ou seu adaptador rede) aceitou os dados pacote para transmissão, portanto, MiniportSend está retornando o pacote, que NDIS irá retornar para o protocolo. |
NDIS_STATUS_PENDING |
O driver será o pacote completo de forma assíncrona com um chamar para NdisMSendComplete. |
NDIS_STATUS_RESOURCES |
O driver (ou rede adaptador) atualmente tem recursos insuficiente disponível para o pacote determinado processo modo NDIS deve fila o pacote de envio para enviar um novamente quando o driver próximo chamadas NdisMSendResourcesAvailable Ou NdisMSendComplete. |
NDIS_STATUS_FAILURE |
O pacote fornecido era inválido ou inaceitável para adaptador de rede. |
Remarks
MiniportSend segura podem acessar o pacote e todos os descritores reserva encadeadas para o pacote até que o pacote especificado esteja completo. Se MiniportSend Retorna um status Other Than NDIS_STATUS_PENDING ou NDIS_STATUS_RESOURCES, a solicitação é considerada completo e propriedade de descritor de pacote e todos os memória associado com o pacote reverte para o protocolo alocação.
Se MiniportSend Retorna NDIS_STATUS_PENDING, o driver subseqüentemente deve sinal conclusão a solicitação por chamado NdisMSendComplete. Quando MiniportSend Retorna NDIS_STATUS_RESOURCES, a biblioteca NDIS reflete esse status para o protocolo como NDIS_STATUS_PENDING.
Quando essa função retorna um pacote com NDIS_STATUS_RESOURCES, o próximo pacote enviado ao MiniportSend é o mesmo pacote que ele apenas retornado ao NDIS. Conseqüentemente, MiniportSend pode otimizar por mantém informações sobre esse um pacote retornado se o driver atualmente tem recursos suficientes para armazenar as informações. Assume NDIS MiniportSend Está pronto para aceitar esse pacote as soon as chama o driver NdisMSendResourcesAvailable Ou NdisMSendComplete, que ocorrer primeiro.
Cada driver protocolo deve transmitir pacote descritores para NdisSend Que totalmente estiver configurado para ser passado pelo subjacente do driver MiniportSend função para seu adaptador rede. Isto é, o protocolo é responsável por determinar o que é exigido, com base no médio tipo selecionado de miniporta para o qual o ligado protocolo próprio. No entanto, um protocolo pode fornecer rede pacotes mapeados pelo descritores de reserva encadeadas que são mais curtas do que o mínimo para a mídia selecionada, o qual MiniportSend PAD se seu Médio impõe um requisito Minimum-length em deve transmite.
Qualquer intermediário NDIS driver que camadas próprio entre um protocolo de nível superior e um subjacente driver adaptador rede tem a mesma responsabilidade como qualquer driver protocolo configurar pacotes de acordo com os requisitos do subjacente miniporta e sua mídia selecionada. Tal um intermediário driver necessário remontar cada de entrada enviar pacote em um atualizado descritor pacote que foi alocada pelo intermediário driver.
MiniportSend Pode usar somente os oito-área byte no MiniportReserved Dentro de NDIS_PACKET estrutura para suas próprias finalidades. Conseqüentemente, um intermediário NDIS driver que encaminha enviar solicitações para um subjacente driver adaptador rede necessário remontar a entrada pacotes para sua MiniportSend função no atualizado descritores pacote, que o intermediário driver aloca de pool pacote, de modo que o subjacente miniporta tem um MiniportReserved área que ele pode usar.
MiniportSend pode chamar NdisQueryPacket Para extrair informações, such as o número de descritores reserva encadeadas para o pacote e o tamanho total em bytes da transferir solicitada. Ele pode chamar NdisGetFirstBufferFromPacket, NdisQueryBuffer, ou NdisQueryBufferOffset Para extrair informações sobre individual buffers contendo os dados para serem transmitidos.
O Sinalizadores parâmetro pode fornecer informações sobre um envio que não está contido em dados de pacote próprio. Atualmente, há sinalizadores não definidos pelo sistema, mas um par de perto e protocolo e drivers de miniporta pode transmitir informações nesse parâmetro, que MiniportSend Pode recuperar com NdisGetPacketFlags. No entanto, esse um par de drivers pode comunicar-se obter mais informações, such as carimbos tempo e prioridade pacote, no bloco de NDIS_PACKET_OOB_DATA associado com cada descritor pacote.
Se o subjacente do driver MiniportQueryInformation função definir o sinalizador NDIS_MAC_OPTION_NO_LOOPBACK quando a biblioteca NDIS consultado o OID_GEN_MAC_OPTIONS, a miniporta não deve tentar executar um loop voltar quaisquer pacotes. A biblioteca NDIS fornece suporte auto-retorno software para tal um driver.
MiniportSend Pode ser Pre-empted por uma interrupção.
Requirements
Header | externs.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
NDIS_PACKET
MiniportInitialize
MiniportQueryInformation
NdisGetFirstBufferFromPacket
NdisGetPacketFlags
NdisMSendComplete
NdisMSendResourcesAvailable
NdisQueryBuffer
NdisQueryBufferOffset
NdisQueryPacket
NdisSend