OID_GEN_CO_GET_TIME_CAPS

Nota

OID_GEN_CO_GET_TIME_CAPS è uguale a OID_GEN_GET_TIME_CAPS.

Il OID_GEN_CO_GET_TIME_CAPS OID richiede a un driver miniport di restituire le sue funzionalità per la creazione di report dell'ora locale di una scheda di interfaccia di rete formattata come struttura GEN_GET_TIME_CAPS, definita come indicato di seguito:

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

I membri di questa struttura contengono le informazioni seguenti:

Flag
I flag seguenti possono essere ORed insieme. Tutti i flag non specificati devono essere impostati su zero.

READABLE_LOCAL_CLOCK
Se impostato, indica la presenza di un orologio leggibile nella scheda di interfaccia di rete. Anche senza tale orologio hardware, un driver miniport può usare l'orologio di sistema chiamando NdisGetCurrentSystemTime, purché segnala la precisione corretta nel membro ClockPrecision.

CLOCK_NETWORK_DERIVED
Se impostato, indica che l'ora locale della scheda di interfaccia di rete viene derivata dalla connessione di rete, anziché da un orologio in esecuzione gratuita.

CLOCK_PRECISION
Se impostato, indica che il membro ClockPrecision contiene informazioni valide.

RECEIVE_TIME_INDICATION_CAPABLE
Se impostato, indica che l'hardware della scheda di interfaccia di rete può notare l'ora locale in cui riceve la prima cella di un PDU ricevuto e che il driver miniport propaga questo tempo di ricezione per ogni PDU quando indica il pacchetto a un protocollo.

TIMED_SEND_CAPABLE
Se impostato, indica che la scheda di interfaccia di rete può pianificare un pacchetto per la trasmissione in base all'ora locale. I protocolli possono usare NDIS_SET_PACKET_TIME_TO_SEND per impostare il timestamp TimeToSend nel blocco dati out-of-band di un descrittore di pacchetti. L'impostazione del timestamp non influisce quando il pacchetto viene effettivamente trasmesso; viene invece usato il timestamp per il mantenimento dei record. Un driver di protocollo può usare il timestamp per determinare il tempo necessario per completare l'invio di un paket.

TIME_STAMP_CAPABLE
Se impostato, indica che la scheda di interfaccia di rete può stampare (nel campo appropriato del pacchetto in uscita) la volta in cui viene trasmesso il primo byte del pacchetto e che la scheda di interfaccia di rete può recuperare questa volta dallo stesso campo di un pacchetto in ingresso.

ClockPrecision
Specifica la precisione dell'orologio in parti per milione. Per considerare valide queste informazioni, è necessario impostare il flag di CLOCK_PRECISION.

Commenti

Un driver miniport può fornire supporto per determinati parametri di intervallo anche in assenza di un orologio locale o di rete. In particolare, un driver miniport può usare l'orologio di sistema per ricevere indicazioni di ora, invii temporali e persino timestamp. Un orologio basato sulla scheda di interfaccia di rete è migliore perché è probabile che fornisca una precisione maggiore e che sia accessibile con latenze inferiori rispetto all'orologio di sistema. In tutti i casi, il driver miniport deve specificare la precisione dell'orologio usato. In questo modo, i protocolli consentono di determinare come usare al meglio il supporto di temporizzazione del driver miniport.

Se il driver miniport segnala la presenza di un orologio leggibile, deve essere preparato per rispondere immediatamente a una query OID_GEN_GET_NETCARD_TIME. La risposta del driver miniport a questa chiamata è time-critical e pertanto deve essere sincrona.

Requisiti

Versione: Windows Vista e intestazione successiva: Ntddndis.h (include Ndis.h)