Partilhar via


OID_GEN_CO_GET_TIME_CAPS

Observação

OID_GEN_CO_GET_TIME_CAPS é o mesmo que OID_GEN_GET_TIME_CAPS.

O OID_GEN_CO_GET_TIME_CAPS OID solicita que um driver de miniporta retorne seus recursos para relatar a hora local de uma NIC formatada como uma estrutura GEN_GET_TIME_CAPS, que é definida da seguinte forma:

typedef struct _GEN_GET_TIME_CAPS{
    ULONG   Flags;
    ULONG   ClockPrecision;
} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;

Os membros desta estrutura contêm as seguintes informações:

Bandeiras
Os sinalizadores a seguir podem ser ORed juntos. Todos os sinalizadores não especificados devem ser definidos como zero.

READABLE_LOCAL_CLOCK
Quando definido, indica a presença de um relógio legível na NIC. Mesmo sem esse relógio de hardware, um driver de miniporta pode usar o relógio do sistema chamando NdisGetCurrentSystemTime, desde que informe a precisão correta no membro ClockPrecision.

CLOCK_NETWORK_DERIVED
Quando definido, indica que a hora local da placa de rede é derivada da conexão de rede, em oposição a um relógio integrado de execução livre.

CLOCK_PRECISION
Quando definido, indica que o membro ClockPrecision contém informações válidas.

RECEIVE_TIME_INDICATION_CAPABLE
Quando definido, indica que o hardware da NIC pode anotar a hora local em que recebe a primeira célula de uma PDU recebida e que o driver de miniporta propaga esse tempo de recebimento para cada PDU ao indicar o pacote para um protocolo.

TIMED_SEND_CAPABLE
Quando definido, indica que a NIC pode agendar um pacote para transmissão de acordo com sua hora local. Os protocolos podem usar NDIS_SET_PACKET_TIME_TO_SEND para definir o carimbo de data/hora TimeToSend no bloco de dados fora de banda de um descritor de pacote. A configuração do carimbo de data/hora não afeta quando o pacote é realmente transmitido; em vez disso, o carimbo de data/hora é usado para manter registros. Um driver de protocolo pode usar o carimbo de data/hora para determinar quanto tempo leva para concluir o envio de um paket.

TIME_STAMP_CAPABLE
Quando definido, indica que a NIC pode carimbar (no campo apropriado do pacote de saída) a hora em que o primeiro byte do pacote é transmitido e que a NIC pode recuperar esse tempo do mesmo campo de um pacote de entrada.

ClockPrecision
Especifica a precisão do relógio em partes por milhão. Para que esta informação seja considerada válida, o sinalizador CLOCK_PRECISION deve ser definido.

Comentários

Um driver de miniporta pode fornecer suporte para certos parâmetros de temporização, mesmo na ausência de um relógio local ou de rede. Em particular, um driver de miniporta pode usar o relógio do sistema para receber indicações de tempo, envios cronometrados e até mesmo carimbo de data/hora. Um relógio baseado em NIC é melhor, pois é provável que forneça maior precisão e seja acessível com latências mais baixas do que o relógio do sistema. Em todos os casos, o driver de miniporta deve especificar a precisão do relógio que ele usa. Isso permite que os protocolos determinem a melhor forma de usar o suporte de temporização do driver de miniporta.

Se o driver da miniporta relatar a presença de um relógio legível, ele deve estar preparado para responder imediatamente a uma consulta OID_GEN_GET_NETCARD_TIME. A resposta do driver de miniporta a essa chamada é crítica em termos de tempo e, portanto, deve ser síncrona.

Requerimentos

Versão: Windows Vista e posterior de cabeçalho : Ntddndis.h (incluir Ndis.h)