NDIS_PACKET_OOB_DATA
9/8/2008
Essa estrutura contém out - de - informações banda (OOB) associado com um descritor pacote usado pelo drivers cuja mídia fornece, requer ou aceita informações OOB, such as informações para um modo transferência assíncrona (ATM) NIC. Além disso, ele é usado por drivers que multipacket suporte recebe e / ou envia.
Syntax
typedef struct _NDIS_PACKET_OOB_DATA {
union {
ULONGLONG TimeToSend;
ULONGLONG TimeSent;
};
ULONGLONG TimeReceived;
UINT HeaderSize;
UINT SizeMediaSpecificInfo;
PVOID MediaSpecificInformation;
NDIS_STATUS Status;
} NDIS_PACKET_OOB_DATA, *PNDIS_PACKET_OOB_DATA;
Os membros
TimeToSend
Especifica o tempo, em unidades hora do sistema, no qual um determinado pacote deve ser transmitido a rede.Protocolos podem definir este carimbo de data/hora antes de passar uma matriz dos ponteiros descritor pacote para NdisSendPackets ou um ponteiro descritor pacote para NdisSend.
O MiniportSendPackets Ou MiniportSend função de subjacente drivers podem recuperar o valor deste carimbo de data/hora para determinar quando os pacotes determinados devem ser transmitidos a rede. Geralmente, apenas o mínimo-nível subjacente driver recupera este carimbo de data/hora.
TimeSent
Especifica o tempo, em unidades hora do sistema, no qual um pacote recebido foi transmitido a rede de um remoto nó.Drivers NIC e, possivelmente, intermediário drivers que exportar somente um conjunto de MiniportaXXX Definir funções isso carimbo de data/hora antes indicando recebe pacotes.
O ProtocolReceivePacket funções dos drivers ligado acima tal uma miniporta pode recuperar o valor deste carimbo de data/hora para determinar quando qualquer pacote particular foi transmitida do remoto nó. Se a pasta ProtocolReceive função é fornecida uma indicação e o subjacente driver define este carimbo de data/hora, ProtocolReceive pode chamar NdisGetReceivedPacket e NDIS_GET_ORIGINAL_PACKET Para recuperar o pacote que contém este carimbo de data/hora.
TimeReceived
Especifica o tempo, em unidades hora do sistema, no qual um determinado pacote de um remoto nó Logon de rede foi recebida no NIC.Drivers NIC e, possivelmente, intermediário drivers que exportar somente um conjunto de MiniportaXXX Esta carimbo de data/hora antes chamado definir funções NdisMIndicateReceivePacket Com uma matriz pacote, que pode ter um ou mais ponteiros para descritores pacote.
O ProtocolReceivePacket funções dos drivers ligado acima qualquer tal miniporta pode recuperar o valor deste carimbo de data/hora para determinar quando os determinado pacotes foram recebidos. Se a pasta ProtocolReceive função é fornecida uma indicação e o subjacente driver define este carimbo de data/hora, ProtocolReceive pode chamar NdisGetReceivedPacket e NDIS_GET_ORIGINAL_PACKET Para recuperar o pacote que contém este carimbo de data/hora.
HeaderSize
Especifica o tamanho, em bytes, do cabeçalho Medium-specific contidas a reserva mapeada pelo descritor de reserva inicial encadeada para o descritor pacote.Inferior-nível drivers definir esse membro para subseqüentes receber indicações de acordo com a mídia de cada driver MiniportInitialize função escolhida para suporte.
O ProtocolReceivePacket funções dos drivers ligado acima tal uma miniporta pode recuperar o valor desse membro para determinar como processo de rede Medium-specific pacote.
SizeMediaSpecificInfo
Especifica o tamanho, em bytes, da reserva em MediaSpecificInformation.Um driver deve definir esse membro se ele fornece informações OOB com um pacote a ser enviado ou indicado.
MediaSpecificInformation
Especifica o endereço de uma reserva driver-allocated. Esta reserva contém quaisquer dados OOB, such as informações para um ATM NIC que acompanha a rede pacote especificado com descritor de pacote. Os dados OOB foi configurados pelo protocolo alocação para um envio ou a miniporta alocação para uma indicação de recebimento.O tipo de driver pode recuperar o endereço de reserva de dados OOB e seu tamanho para determinar como processo interpretar a enviar ou receber especificado com a de entrada descritor pacote. Se a pasta ProtocolReceive função é fornecida uma indicação e o subjacente driver fornece essa informações, ProtocolReceive pode chamar NdisGetReceivedPacket e NDIS_GET_ORIGINAL_PACKET Para recuperar o pacote que contém o intervalo virtual desta reserva.
Status
Especifica o status do descritor de pacote e a propriedade de todos os recursos alocados-driver especificado com descritor de pacote.Somente Inferior-nível drivers e NDIS definidas neste membro.
No caminho de recebimento, uma miniporta pode definir esse membro antes ele chama NdisMIndicateReceivePacket Para indicar quanto tempo ele precisa recuperar a propriedade de seus recursos alocados especificado no associado descritores pacote. Um serializado miniporta pode recuperar esse valor no retorno de NdisMIndicateReceivePacket Para determinar se os recursos especificados com descritor de pacote para seu indicação podem estar preparados para reutilização imediatamente.
No caminho de envio, um serializado miniporta pode definir esse membro no seu MiniportSendPackets função para completo um de entrada enviar imediatamente, para notificar NDIS que ele será completo a solicitação de forma assíncrona, ou a solicitação que NDIS requeue alguns ou todos a de entrada matriz pacote e submeta novamente esses descritores pacote para MiniportSendPackets mais tarde.
Um protocolo não pode recuperar esse valor para determinar o status de conclusão de um envio no retorno de seu chamar para NdisSendPackets Ou NdisSend.
Não é possível uma miniporta serializada ou conexão-orientados completo um multipacket envia sincronicamente ou solicitação (pela configuração de Status membro) que NDIS requeue parte ou todo uma de entrada matriz pacote. Em vez disso, deve uma miniporta serializada ou conexão-orientado a fila internamente a de entrada inteira matriz pacote se ele não é possível enviar os dados imediatamente e deve sempre completo um multipacket Enviar de forma assíncrona com NdisMSendComplete Para cada pacote na matriz.
Remarks
Cada pacote descritor alocado com NdisAllocatePacket possui um associado NDIS_PACKET_OOB_DATA bloco. Apenas drivers que multipacket suporte envia e / ou recebe e drivers que fornecer informações OOB, such as prioridade pacote, com cada pacote rede sejam transferidas usam o bloco OOB. No entanto, cada driver NDIS que aloca descritores pacote para transferências entre ligado drivers devem alocar esses descritores pacote com NdisAllocatePacket a partir de pool pacote que cada tal NDIS driver aloca geralmente quando ele inicializa.
Em geral, são mais prováveis de drivers de alta capacidade BusMaster NICs acesso direto à memória (DMA) multipacket suporte recebe e envia pois tal um driver NIC torna os ganhos maiores desempenho pelo suporte transferências multipacket. Qualquer protocolo que vincula próprio para, ou superior, tal um subjacente NIC driver também deve multipacket suporte envia e recebe para desempenho máximo.
Se tal um protocolo também vincula próprio acima outro driver NIC sem suporte transferir multipacket, NDIS trata envia multipacket e único - pacote recebe em uma maneira transparente para ambos os drivers por sempre chamado do protocolo ProtocolReceive função e por chamado do driver que NIC MiniportSend função com um único pacote por chamar. Da mesma forma, se um protocolo que faz não suporte transferências multipacket vincula próprio acima um driver NIC que faz, multipacket alças NDIS recebe indicações e pacote único envia em uma forma transparente para ambos os drivers, embora o MiniportSendPackets função do subjacente driver NIC é fornecido somente um único enviar solicitação por chamar para NdisSend de tal um protocolo.
Usando Timestamps
Todos os carimbos de data / hora definido na NDIS_PACKET_OOB_DATA Blocos associado com pacote descritores é expressos em unidades hora do sistema como o número de intervalos 100-nanosecond desde 12: 00 1 De janeiro de 1601.
Drivers NDIS podem chamar NdisGetCurrentSystemTime Quando eles definido esses carimbos de data / hora com o NDIS_SET_PACKET_TIME_XXX As macros. Drivers de nível mais alto ainda ou componentes sistema podem converter esses carimbos de data / hora em específicas da localidade valores mais significativo para o usuário final.
Fornecendo informações OOB com pacotes
Quaisquer informações OOB especificadas na SizeMediaSpecificInfo e MediaSpecificInformation Membros é Médio - tipo - específico. De exemplo, alguns tipos de mídias requerem protocolos para especificar uma prioridade pacote para cada pacote eles enviar e requerem drivers NIC para especificar uma prioridade pacote com cada recebe pacote eles indicam. Tal um driver NIC deve chamar NdisMIndicateReceivePacket Para atender aos requisitos desses tipos de mídia.
Enquanto NDIS fornece suporte para um intervalo de valores prioridade de 0 a 7, alguns suporte mídia somente dois níveis de prioridade. Para esses tipos de mídia, drivers NDIS devem mapa (n.); mapear (v.) valores de 0 a 3 para o valor Medium-specific prioridade normal (normalmente 0 para esses tipos de mídia) e valores de 4 a 7 para o alto médio específicas-valor prioridade (normalmente um para esses tipos de mídia).
Para informações adicionais sobre a estrutura de individual registros dentro de reserva no MediaSpecificInformation, consulte MediaSpecificInformation.
Requirements
Header | ndis.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
MediaSpecificInformation
MiniportInitialize
MiniportReturnPacket
MiniportSend
MiniportSendPackets
NdisAllocatePacket
NdisGetCurrentSystemTime
NDIS_GET_ORIGINAL_PACKET
NdisGetReceivedPacket
NDIS_GET_PACKET_STATUS
NDIS_OOB_DATA_FROM_PACKET
NdisMIndicateReceivePacket
NdisMSendComplete
NdisMSendResourcesAvailable
NdisSend
NdisSendPackets
OID_802_3_MAC_OPTIONS
ProtocolReceiveComplete
ProtocolReceive
ProtocolReceivePacket
ProtocolSendComplete