Leggere in inglese

Condividi tramite


OID_GEN_CO_GET_TIME_CAPS

Nota

OID_GEN_CO_GET_TIME_CAPS è uguale a OID_GEN_GET_TIME_CAPS.

L'OID OID_GEN_CO_GET_TIME_CAPS richiede a un driver miniport di restituire le relative funzionalità per segnalare l'ora locale di una scheda di interfaccia di rete formattata come struttura GEN_GET_TIME_CAPS, definita come segue:

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 un orologio hardware di questo tipo, un driver miniport può usare l'orologio di sistema chiamando NdisGetCurrentSystemTime, purché restituisca la precisione corretta nel membro ClockPrecision.

CLOCK_NETWORK_DERIVED
Se impostato, indica che l'ora locale della scheda di interfaccia di rete è derivata dalla connessione di rete, anziché da un orologio di onboarding libero.

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 di dati fuori banda di un descrittore di pacchetti. L'impostazione del timestamp non influisce sul momento in cui il pacchetto viene effettivamente trasmesso; Viene invece usato il timestamp per la conservazione 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ò contrassegnarsi (nel campo appropriato del pacchetto in uscita) l'ora 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. Affinché queste informazioni siano considerate valide, è necessario impostare il flag CLOCK_PRECISION.

Osservazioni

Un driver miniport può fornire supporto per determinati parametri di temporizzazione anche in assenza di un orologio locale o di rete. In particolare, un driver miniport può utilizzare l'orologio di sistema per ricevere indicazioni sull'ora, invii a tempo e persino timestamp. Un orologio basato su 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 utilizzato. Ciò consente ai protocolli 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 conducente miniport a questa chiamata è critica per il tempo e pertanto deve essere sincrona.

Fabbisogno

versione: Windows Vista e versioni successive Intestazione: Ntddndis.h (include Ndis.h)