MediaSpecificInformation
9/8/2008
Essa estrutura contém informações sobre as características de hardware de rede ligado a um protocolo.
Syntax
typedef struct MediaSpecificInformation {
UINT NextEntryOffset;
NDIS_CLASS_ID ClassId;
UINT Size;
UCHAR ClassInformation[1];
} MEDIA_SPECIFIC_INFORMATION;
Os membros
- NextEntryOffset
Especifica o deslocamento de byte para esse membro no próximo registro, se houver algum. Zero indica que este é o último registro na reserva; Os valores de todos os membros restantes o último registro são também 0. O valor desse membro deve ser Quad-alinhado.
ClassID
Especifica o tipo do registro. Valores possíveis são um do seguinte:Valor Descrição NdisClass802_3Priority
O subjacente NIC médio requer que especificar drivers por-prioridade pacote, enquanto o driver usa emulação Ethernet para se comunicar com ligado protocolos.
Um ligado protocolo pode determinar se o subjacente médio nativo do NIC miniporta requer priorizados pacotes com o OID_802_3_MAC_OPTIONS consulta. Em caso afirmativo, a miniporta define o sinalizador NDIS_802_3_OPTION_PRIORITY.
NdisClassWirelessWanMbxMailbox
O subjacente driver NIC examina o ULONG-Tamanho registro no ClassInformation Para determinar se o sinalizador caixa de correio deve ser definido para o associado pacote. Um valor de 1 indica que o sinalizador caixa de correio deve ser definida; 0 indica que ele não deve.
- Tamanho
Especifica o número de bytes na ClassInformation matriz, incluindo qualquer preenchimento necessário para alinhar o NextEntryOffset do próximo registro em um 4-limite byte.
- ClassInformation
Especifica o out - of - banda informações para este registro.
Remarks
O NDIS_CLASS_ID tipo é uma enumeração NDIS-defined. Comum a maioria das classificações de registros serão especificadas como valores definidos pelo sistema. No entanto, um intervalo de valores nessa enumeração será disponível para as classes experimentais Vendor-defined.
Definir status antes de fazer receber Indications
Somente Inferior-nível usar drivers NDIS o Status membro dessa estrutura para receber indicações. Antes de que chama tal um driver NdisMIndicateReceivePacket, ele define o Status membro com NDIS_SET_PACKET_STATUS Para um ou mais descritores pacote na matriz. A seguinte tabela mostra os possíveis valores para Status.
Valor | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
NDIS informa que o driver é abandonar a propriedade do pacote prestes a ser indicados com NdisMIndicateReceivePacket até que o descritor pacote é retornado ao seu MiniportReturnPacket função. Protocolos que recebem a indicação podem usar o descritor pacote, along with todos os buffers mapeados pelo descritores reserva encadeadas para o descritor pacote e quaisquer informações OOB fornecido com o pacote, para copiar a rede indicado dados pacote ou, possivelmente, para ENC os dados indicados aos clientes interessados. |
NDIS_STATUS_RESOURCES |
NDIS informa que o driver está mantendo a propriedade do pacote prestes a ser indicados com NdisMIndicateReceivePacket. Este pacote será indicado para o ProtocolReceive função de ligado protocolos. |
Definir esse status força ligado protocolos para retornar a propriedade de cada tal descritor pacote, de qualquer reserva Medium-specific no bloco de dados OOB para cada descritor pacote e de memória mapeada pela cada descritor pacote do respectiva encadeadas descritores reserva para o driver indicando mais rapidamente. Os protocolos devem aguardar um chamar para seus ProtocolReceiveComplete funções para começar pós-processamento de dados eles copiado de indicações e encaminhar os dados para os clientes.
Obtendo Status em Return de NdisMIndicateReceivePacket
Após um serializado driver definiu o Status Para alguns número de descritores pacote chamado NdisMIndicateReceivePacket Com a matriz de ponteiros para descritores de pacote, ele deve usar o NDIS_GET_PACKET_STATUS macro quando NdisMIndicateReceivePacket Retorna controle para recuperar o Status Definir NDIS.
O retornado Status in a NDIS_PACKET_OOB_DATA bloco determina o que faz o driver indicando próximo. O bloco NDIS_PACKET_OOB_DATA é associado com cada um dos descritores de pacote que o serializado driver indicados com NDIS_STATUS_SUCCESS.
A seguinte tabela mostra possíveis valores para Statuse descreve a ação resultante a serem tomadas pelo driver.
Status | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
Se esse valor é definido em retornar a partir chamar de uma miniporta para NdisMIndicateReceivePacket, a miniporta regains a propriedade do seguinte: O descritor pacote O associado OOB bloco de dados associado com descritor de pacote e de qualquer mídia-específicas informações reserva especificada neste bloco todos os buffers mapeados pelo descritores reserva encadeadas para o descritor pacote NDIS garante que quaisquer descritores pacote para o qual o driver indicando definida NDIS_STATUS_RESOURCES, como já descritos, serão retornados da sua chamar para NdisMIndicateReceivePacket Com NDIS_STATUS_SUCCESS. O driver pode preparar esses descritores, de bloco OOB e reserva informações Media-specific, se houver, para reutilização em subseqüentes receber indicações imediatamente. |
NDIS_STATUS_PENDING |
Se esse valor é definido em retornar do NdisMIndicateReceivePacket, protocolos apropriar reter de descritor de pacote, de seu associado OOB dados bloco e qualquer reserva especificado neste bloco e de todos os buffers mapeados pelo descritores reserva encadeadas para o descritor pacote até que o descritor pacote é retornada do driver de indicando MiniportReturnPacket função. |
Definir status Em MiniportSendPackets
Somente subjacente serializado drivers NDIS com MiniportSendPackets funções podem usar o Status membro dessa estrutura para descritores pacote especificando envia. Tal de um driver MiniportSendPackets função conjuntos de Status membro em blocos de dados OOB associado com descritores de pacote na entrada matriz como segue:
- Se o driver será completo a operação de envio de forma assíncrona, MiniportSendPackets Define NDIS_STATUS_PENDING o Status membro para o descritor determinado pacote.
- Se o driver não é possível processo todos os envia em uma matriz determinado pacote atual devido a restrições recurso, MiniportSendPackets Define NDIS_STATUS_RESOURCES o Status membro de um pacote descritor.
- Esses descritores pacote internamente na mesma ordem para enviar novamente a filas NDIS MiniportSendPackets Quando o driver chama NdisMSendResourcesAvailable Ou NdisMSendComplete, que ocorrer primeiro. NDIS reflete essa valor status Miniport-Set para protocolos como NDIS_STATUS_PENDING.
- Se MiniportSendPackets Será completo uma solicitação enviar determinado antes de que retornará controle, ele deve definido o Status membro para o descritor pacote fornecido para um valor status driver-determined para que NDIS pode refletir esse status voltar para o protocolo que iniciou o envio.
Caso contrário, esse um driver fornece o status de conclusão para cada pacote quando ele chama NdisMSendComplete Com descritor de pacote. Drivers que têm MiniportSend em vez de MiniportSendPackets funções retornam o status para cada de entrada enviar pacote, portanto, nunca define tal um driver de Status membro do bloco de dados OOB para um descritor pacote especificando um envio.
Protocolos Não é possível determinar o status de conclusão para um descritor Protocol-allocated pacote a partir de Status membro do associado bloco OOB no retorno de NdisSendPackets Ou NdisSend. Este valor pode alteração dinamicamente como NDIS envia, re-Queues e reenvia enviar pacotes para subjacente dos drivers MiniportSendPackets e / ou MiniportSend funções.
Um protocolo não é possível usar qualquer NDIS_GET_PACKET_XXX macro ou o NDIS_OOB_DATA_FROM_PACKET macro para acessar o bloco dados OOB para tal um descritor Protocol-allocated pacote até seu ProtocolSendComplete função é chamado com descritor de pacote.
Requirements
Header | ndis.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
MiniportReturnPacket
MiniportSend
MiniportSendPackets
NDIS_GET_PACKET_STATUS
NDIS_OOB_DATA_FROM_PACKET
NDIS_PACKET_OOB_DATA
NdisMIndicateReceivePacket
NdisMSendComplete
NdisMSendResourcesAvailable
NdisSend
NdisSendPackets
OID_802_3_MAC_OPTIONS
ProtocolReceiveComplete
ProtocolReceive
ProtocolSendComplete