OID_WAN_CO_GET_INFO
O OID_WAN_CO_GET_INFO OID solicita que o driver de miniporto retorne informações que se apliquem a todas as VCs (conexões virtuais) em sua NIC. Essas informações são retornadas em uma estrutura NDIS_WAN_CO_INFO, definida da seguinte maneira.
typedef struct _NDIS_WAN_CO_INFO {
OUT ULONG MaxFrameSize;
OUT ULONG MaxSendWindow;
OUT ULONG FramingBits;
OUT ULONG DesiredACCM;
} NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
Os membros dessa estrutura contêm as seguintes informações:
MaxFrameSize
Especifica o tamanho máximo do quadro para qualquer pacote líquido que o driver de miniporto pode enviar e receber. Esse valor deve excluir a sobrecarga de enquadramento do próprio driver de miniport e/ou a sobrecarga de HDLC do PPP. Normalmente, esse valor é em torno de 1500.
No entanto, todos os drivers de miniport de WAN do CoNDIS devem usar um maxframeSize interno de que seja 32 bytes maior que o valor retornado para essa OID. Por exemplo, um driver de miniporto WAN do CoNDIS que retorna 1500 para essa OID deve aceitar e enviar internamente até 1532. Esse driver de miniporto pode prontamente dar suporte a futuras pontes e protocolos adicionais.
MaxSendWindow
Especifica o número máximo de pacotes pendentes que o driver de miniporto WAN do CoNDIS pode manipular em uma VC. Esse membro deve ser definido como pelo menos um.
O driver NDISWAN usa o valor desse membro como um limite de quantos pacotes ele envia em solicitações de envio para a função MiniportCoSendPackets do driver de miniporto antes que o NDISWAN mantenha os pacotes de envio. Esses pacotes são enfileirados até que o driver de miniporto conclua um envio pendente. Um driver de miniporto pode ajustar esse valor dinamicamente e por VC usando o membro SendWindow na estrutura WAN_CO_LINKPARAMS que o driver de miniporto passa para NdisMCoIndicateStatus. O NDISWAN usa o valor SendWindow atual como seu limite em envios pendentes. Se o driver de miniporto definir SendWindow como zero, o NDISWAN deverá parar de enviar pacotes para a VC específica. Ou seja, o driver de miniporto especifica que a janela de envio está desligada, o que, na verdade, especifica que ele não pode aceitar nenhum pacote do NDISWAN.
Como um driver de miniporto WAN coNDIS deve enfileirar pacotes internamente, o valor de MaxSendWindow é teoricamente máximo de(ULONG). No entanto, esse valor determinado pelo driver deve refletir a velocidade do link ou os recursos de hardware da NIC. Por exemplo, se a NIC de um driver de miniporto sempre tiver espaço para pelo menos quatro pacotes, o driver de miniporto definirá MaxSendWindow para quatro para que qualquer pacote de entrada para MiniportCoSendPackets possa ser colocado no hardware imediatamente.
FramingBits
Um valor de 32 bits que especifica uma máscara de bits especificando os tipos de enquadramento que o driver de miniporto dá suporte. O driver de miniporto pode especificar uma combinação dos seguintes valores usando o operador OR binário:
RAS_FRAMING
Defina somente se o driver de miniporto puder detectar o enquadramento ras mais antigo. Somente os drivers herdados que suportavam o enquadramento ras anterior definem esse sinalizador.
RAS_COMPRESSION
Defina somente se o driver de miniporto der suporte ao esquema de compactação RAS mais antigo.
PPP_FRAMING
Deve ser sempre definido. Indica que o driver de miniporto pode detectar e dar suporte ao enquadramento de PPP para seu tipo médio.
PPP_COMPRESS_ADDRESS_CONTROL
Defina se o driver de miniporto dá suporte à compactação de campo de controle e endereço PPP.
O NDISWAN removerá o endereço e o campo de controle se essa opção LCP for negociada. Alguns tipos médios wan, como X.25, não dão suporte a essa opção.
PPP_COMPRESS_PROTOCOL_FIELD
Defina se o driver de miniporto dá suporte à compactação de campo de protocolo PPP.
O NDISWAN removerá um byte do campo de protocolo quando aplicável se essa opção LCP for negociada.
PPP_ACCM_SUPPORTED
Defina se o driver de miniporto dá suporte ao mapeamento de caracteres de controle assíncrono. Esse bit só é válido para mídia assíncrona, como modems. Se esse bit for definido, o membro DesiredACCM deverá ser válido.
PPP_MULTILINK_FRAMING
Defina se o driver de miniporto dá suporte ao enquadramento de vários vínculos, conforme especificado no IETF RFC 1717.
PPP_SHORT_SEQUENCE_HDR_FORMAT
Defina se o driver de miniporto dá suporte ao formato de cabeçalho para o enquadramento de vários vínculos, conforme especificado no IETF RFC 1717.
SLIP_FRAMING
Defina se o driver de miniporto puder detectar e dar suporte ao enquadramento de SLIP (somente drivers de miniportos assíncronos).
SLIP_VJ_COMPRESSION
Defina se o driver de miniporto puder dar suporte à compactação de cabeçalho TCP/IP van Jacobsen para SLIP. O NDISWAN dá suporte a SLIP_VJ_COMPRESSION (com 16 slots). A mídia assíncrona (drivers de miniporto serial) que dão suporte ao enquadramento de SLIP deve definir esse bit.
A mídia assíncrona não precisa escrever nenhum código para dar suporte à compactação de cabeçalho VJ. NDISWAN cuidará disso.
SLIP_VJ_AUTODETECT
Defina se o driver de miniporto puder detectar automaticamente a compactação de cabeçalho TCP/IP de Van Jacobsen para SLIP. O NDISWAN detectará automaticamente a compactação de cabeçalho VJ. A mídia assíncrona (drivers de miniporto serial) deve definir esse bit se oferecer suporte ao enquadramento de SLIP.
TAPI_PROVIDER
Defina se o driver de miniporto dá suporte aos OIDs do Provedor de Serviços TAPI. A menos que esse bit esteja definido, as chamadas OID do TAPI não serão feitas ao driver de miniporto.
MEDIA_NRZ_ENCODING
Defina se o driver de miniporto dá suporte à codificação NRZ, o padrão PPP para alguns tipos de mídia, como ISDN. Esse valor é reservado para uso futuro.
MEDIA_NRZI_ENCODING
Defina se o driver de miniporto dá suporte à codificação NRZI. Esse valor é reservado para uso futuro.
MEDIA_NLPID
Defina se o driver de miniporto tiver e puder definir o NLPID em seu quadro. Esse valor é reservado para uso futuro.
RFC_1356_FRAMING
Defina se o driver de miniporto dá suporte ao enquadramento IETF RFC 1356 X.25 e ISDN. Esse valor é reservado para uso futuro.
RFC_1483_FRAMING
Defina se o driver de miniporto dá suporte ao encapsulamento de adaptação do ATM IETF RFC 1483 camada 5. Esse valor é reservado para uso futuro.
RFC_1490_FRAMING
Defina se o driver de miniporto dá suporte ao enquadramento de Retransmissão de Quadros do IETF RFC 1490. Esse valor é reservado para uso futuro.
NBF_PRESERVE_MAC_ADDRESS
Defina se o driver de miniporto dá suporte ao enquadramento IETF conforme especificado no rascunho "O protocolo de controle de quadros PPP NETBIOS (NBFCP)."
SHIVA_FRAMING
Substituído por NBF_PRESERVE_MAC_ADDRESS.
PASS_THROUGH_MODE
Defina se o driver de miniporto fizer seu próprio enquadramento. Se esse sinalizador estiver definido, o NDISWAN passará quadros, não interpretados e não modificados.
Os drivers de miniporto devem estar no modo de enquadramento PPP padrão até que cada driver de miniporto receba uma solicitação OID_WAN_CO_SET_LINK_INFO. O driver de miniporto deve detectar automaticamente qualquer enquadramento que ele diz dar suporte.
Por exemplo, os drivers de miniport que dão suporte ao enquadramento ras antigo devem detectar automaticamente o enquadramento ras do enquadramento do PPP. Se um driver de miniporto detectar um esquema de enquadramento diferente do padrão, esse driver de miniporto deverá alternar automaticamente seu enquadramento para o enquadramento detectado recentemente.
Uma consulta subsequente com OID_WAN_CO_GET_LINK_INFO deve indicar o enquadramento detectado. Se nenhum enquadramento ainda for detectado, o FramingBits deverá ser zero nas informações de NDIS_WAN_CO_GET_LINK_INFO retornadas.
Se o driver de miniporto WAN for chamado posteriormente com OID_WAN_CO_SET_LINK_INFO em que o membro frameBits for zero, o driver de miniporto deverá tentar detectar automaticamente o enquadramento após a recepção de cada quadro.
DesiredACCM
O Mapa de Caracteres de Controle Assíncrono é negociado. Esse membro é relevante apenas para tipos de mídia assíncronos.
Requisitos
Versão |
Com suporte para drivers NDIS 6.0 e NDIS 5.1 no Windows Vista. Com suporte para drivers NDIS 5.1 no Windows XP. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |