NdisTransferData
9/8/2008
Essa função encaminha uma solicitação para copiar dados recebidos de subjacente NIC em um pacote Protocol-supplied.
Syntax
VOID NdisTransferData(
PNDIS_STATUS Status,
NDIS_HANDLE NdisBindingHandle,
NDIS_HANDLE MacReceiveContext,
UINT ByteOffset,
UINT BytesToTransfer,
PNDIS_PACKET Packet,
PUINT BytesTransferred
);
Parameters
- Status
[out] Ponteiro para uma variável Caller-supplied que indica o status do chamar.
- NdisBindingHandle
[no] Identificador retornado pela NdisOpenAdapter função que identifica o destino NIC ou o adaptador virtual do driver Next-lower para que o chamador é ligado.
- MacReceiveContext
[no] Especifica o subjacente que foi passado como um parâmetro de entrada para do o chamador identificador do driver ProtocolReceive função. O driver protocolo deve considerar esse identificador serem opacidade.
- ByteOffset
[no] Especifica o deslocamento a partir de iniciar do pacote de rede de recebimento no qual se começar a transferir.
- BytesToTransfer
[no] Especifica o número de bytes para transferir. Este valor pode ser 0.
- Pacote
[in, Out] Ponteiro para o descritor pacote, fornecido pelo chamador, no qual o subjacente driver NIC é para copiar os dados.
- BytesTransferred
[out] Ponteiro para uma variável Caller-supplied no qual essa função retorna o número de bytes realmente transferidos. O valor é inválido se essa função retorna NDIS_STATUS_PENDING em Status.
Return Value
A seguinte tabela mostra os valores de retorno para esta função.
Valor | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
Os dados solicitados tem sido transferidos para o pacote em Pacote. |
NDIS_STATUS_PENDING |
A solicitação está sendo manipulada de forma assíncrona e do o chamador ProtocolTransferComplete função será chamado quando ela for concluída. |
NDIS_STATUS_RESET_IN_PROGRESS |
O subjacente driver no momento está redefinindo seu estado virtual NIC ou NIC. Do chamador ProtocolStatus função foi ou será chamado com NDIS_STATUS_RESET_START para indicar que um redefinir é em andamento. |
NDIS_STATUS_REQUEST_ABORTED |
Ligação o chamador está sendo fechada. |
NDIS_STATUS_FAILURE |
O dado ByteOffset e / ou a determinado BytesToTransfer é muito grande. |
Remarks
Vários protocolos podem ser ligado a um único subjacente NIC e cada tal driver protocolo podem receber uma indicação para o mesmo pacote. Tal um pacote é somente leitura para drivers protocolo. Cada do tal driver ProtocolReceive função determina tornar próprio uma copiar do pacote indicada com essa função.
Antes chamado essa função, o protocolo deve alocar um pacote descritor e encadear algum número de descritores reserva buffers alocados-protocolo mapeamento para o qual o subjacente driver copia os dados. O protocolo também pode definir até a ProtocolReserved Parte do seu descritor pacote antes chamado essa função.
Um driver protocolo sempre deve alocar descritores seus pacote de pool de pacote que o driver configurado durante inicialização.
O intervalo solicitado em uma chamar para esta função, especificada por ByteOffset e BytesToTransfer, deve ser adequado para o PacketSize passado para do o chamador ProtocolReceive função. Os chamadores dessa função geralmente transmitir um ByteOffset valor calculado a partir de entrada parâmetros para ProtocolReceive Como (LookaheadBufferRange + 1). Ou seja, ProtocolReceive Já consumida os dados na reserva de look-ahead, portanto, ele chama essa função para get os dados restantes no indicado receber pacote.
Requirements
Header | ndis.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
NdisOpenAdapter
NdisMIndicateReceivePacket
ProtocolReceive
ProtocolStatus