Compartir a través de


OID_GEN_CO_GET_TIME_CAPS

Nota:

OID_GEN_CO_GET_TIME_CAPS es el mismo que OID_GEN_GET_TIME_CAPS.

El OID_GEN_CO_GET_TIME_CAPS OID solicita a un controlador de minipuerto que devuelva sus funcionalidades para informar de la hora local de una NIC con formato de estructura GEN_GET_TIME_CAPS, que se define de la siguiente manera:

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

Los miembros de esta estructura contienen la siguiente información:

Marcas
Las marcas siguientes pueden ser ORed juntas. Todas las marcas no especificadas deben establecerse en cero.

READABLE_LOCAL_CLOCK
Cuando se establece, indica la presencia de un reloj legible en la NIC. Incluso sin ese reloj de hardware, un controlador de minipuerto puede usar el reloj del sistema llamando a NdisGetCurrentSystemTime, siempre que informe de la precisión correcta en el miembro ClockPrecision.

CLOCK_NETWORK_DERIVED
Cuando se establece, indica que la hora local de la NIC se deriva de la conexión de red, en lugar de un reloj incorporado de ejecución libre.

CLOCK_PRECISION
Cuando se establece, indica que el miembro ClockPrecision contiene información válida.

RECEIVE_TIME_INDICATION_CAPABLE
Cuando se establece, indica que el hardware de la NIC puede anotar la hora local en la que recibe la primera celda de una PDU recibida y que el controlador de miniporte propaga este tiempo de recepción para cada PDU al indicar el paquete a un protocolo.

TIMED_SEND_CAPABLE
Cuando se establece, indica que la NIC puede programar un paquete para la transmisión según su hora local. Los protocolos pueden usar NDIS_SET_PACKET_TIME_TO_SEND para establecer la marca de tiempo TimeToSend en el bloque de datos fuera de banda de un descriptor de paquete. Establecer la marca de tiempo no afecta cuando el paquete se transmite realmente; en su lugar, la marca de tiempo se usa para el mantenimiento de registros. Un controlador de protocolo puede usar la marca de tiempo para determinar cuánto tiempo se tarda en completar el envío de una ataúd.

TIME_STAMP_CAPABLE
Cuando se establece, indica que la NIC puede marcar (en el campo adecuado del paquete saliente) la hora en la que se transmite el primer byte del paquete y que la NIC puede recuperar esta vez del mismo campo de un paquete entrante.

ClockPrecision
Especifica la precisión del reloj en partes por millón. Para que esta información se considere válida, se debe establecer la marca CLOCK_PRECISION.

Observaciones

Un controlador de minipuerto puede proporcionar compatibilidad con determinados parámetros de tiempo incluso en ausencia de un reloj local o de red. En concreto, un controlador de miniporte puede usar el reloj del sistema para recibir indicaciones de tiempo, envíos de tiempo e incluso marcas de tiempo. Un reloj basado en NIC es mejor, ya que es probable que proporcione una mayor precisión y que sea accesible con latencias más bajas que el reloj del sistema. En todos los casos, el controlador de minipuerto debe especificar la precisión del reloj que usa. Esto permite a los protocolos determinar cómo usar mejor el soporte de control de tiempo del controlador de minipuerto.

Si el controlador de minipuerto notifica la presencia de un reloj legible, debe estar preparado para responder inmediatamente a una consulta de OID_GEN_GET_NETCARD_TIME. La respuesta del controlador de miniporte a esta llamada es crítica para el tiempo y, por lo tanto, debe ser sincrónica.

Requisitos

Versión: Windows Vista y encabezado posterior: Ntddndis.h (incluya Ndis.h)