NDIS_STATUS_TIMESTAMP_CAPABILITY
I driver miniport usano l'indicazione di stato NDIS_STATUS_TIMESTAMP_CAPABILITY per segnalare le funzionalità di timestamp hardware della scheda di interfaccia di rete e le funzionalità di timestamp software del driver miniport a driver NDIS e overlying driver.
Questa indicazione di stato rappresenta le funzionalità di timestamp del driver hardware e miniport, non la funzionalità attualmente abilitata o disabilitata. Per altre informazioni sulla creazione di report sulla configurazione del timestamp corrente, vedere NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG.
Commenti
Durante l'inizializzazione, il driver miniport deve indicare le funzionalità di timestamp hardware e software dall'interno della funzione MiniportInitializeEx . Il driver deve:
Inizializzare una struttura NDIS_TIMESTAMP_CAPABILITIES con le funzionalità di timestamp hardware e software della scheda di interfaccia di rete. Il driver imposta i membri della struttura NDIS_TIMESTAMP_CAPABILITIES come indicato di seguito:
- Il driver usa il campo TimestampFlags per indicare le funzionalità di timestamp hardware e software.
Nota
Un'implementazione deve supportare timestamp hardware e timestamp incrociati. Il supporto dei timestamp software è facoltativo.
Il driver deve impostare il campo CrossTimestamp su TRUE.
Il campo HardwareClockFrequencyHz deve contenere la frequenza operativa nominale dell'orologio hardware usato per il timestamp dalla scheda di interfaccia di rete. Questi dati possono essere usati per visualizzare la frequenza di orologio nominale agli utenti finali per scopi informativi.
Il campo Tipo nel campo Intestazione deve essere impostato su NDIS_OBJECT_TYPE_DEFAULT e revisione su NDIS_TIMESTAMP_CAPABILITIES_REVISION_1.
Generare un'indicazione di stato NDIS_STATUS_TIMESTAMP_CAPABILITY chiamando NdisMIndicateStatusEx per segnalare le funzionalità di timestamp. Il campo StatusBuffer della struttura NDIS_STATUS_INDICATION deve puntare alla struttura di NDIS_TIMESTAMP_CAPABILITIES inizializzata.
Il driver miniport deve anche generare l'indicazione dello stato NDIS_STATUS_TIMESTAMP_CAPABILITY ogni volta che rileva una modifica delle funzionalità hardware sottostanti.
Ecco come un driver miniport potrebbe indicare le funzionalità di timestamp supportate:
// From within its initialization routine, the miniport in this
// example indicates that it supports the following capabilities:
// - PtpV2OverUdpIPv4EventMsgReceiveHw
// - PtpV2OverUdpIPv6EventMsgReceiveHw
// - TaggedTransmitHw
// - CrossTimestamp
NDIS_STATUS MiniportInitializeEx(
_In_ NDIS_HANDLE MiniportAdapterHandle,
_In_ NDIS_HANDLE MiniportDriverContext,
_In_ PNDIS_MINIPORT_INIT_PARAMETERS MiniportInitParameters
)
{
. . .
NDIS_TIMESTAMP_CAPABILITIES timeStampCapabilities;
NDIS_STATUS_INDICATION timeStampStatus;
. . .
// Initialize an NDIS_TIMESTAMP_CAPABILITIES structure
RtlZeroMemory(&timeStampCapabilities, sizeof(timeStampCapabilities));
RtlZeroMemory(&timeStampStatus, sizeof(timeStampStatus));
timeStampCapabilities.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
timeStampCapabilities.Header.Size = sizeof(timeStampCapabilities);
timeStampCapabilities.Header.Revision = NDIS_TIMESTAMP_CAPABILITIES_REVISION_1;
timeStampCapabilities.CrossTimestamp = TRUE;
timeStampCapabilities.TimestampFlags.PtpV2OverUdpIPv4EventMsgReceiveHw = TRUE;
timeStampCapabilities.TimestampFlags.PtpV2OverUdpIPv6EventMsgReceiveHw = TRUE;
timeStampCapabilities.TimestampFlags.TaggedTransmitHw = TRUE;
timeStampCapabilities.HardwareClockFrequencyHz = 150000;
timeStampStatus.Header.Type = NDIS_OBJECT_TYPE_STATUS_INDICATION;
timeStampStatus.Header.Revision = NDIS_STATUS_INDICATION_REVISION_1;
timeStampStatus.Header.Size = NDIS_SIZEOF_STATUS_INDICATION_REVISION_1;
timeStampStatus.SourceHandle = MiniportAdapterHandle;
timeStampStatus.StatusBuffer = &timeStampCapabilities;
timeStampStatus.StatusBufferSize = sizeof(timeStampCapabilities);
timeStampStatus.StatusCode = NDIS_STATUS_TIMESTAMP_CAPABILITY;
// Generate an NDIS_STATUS_TIMESTAMP_CAPABILITY status indication
NdisMIndicateStatusEx(MiniportAdapterHandle, &timeStampStatus);
. . .
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 11 |
Server minimo supportato | Windows Server 2022 |
Versione NDIS | NDIS 6.82 e versioni successive |
Intestazione | Ntddndis.h (include Ndis.h) |
Vedi anche
Funzionalità di timestamp di creazione di report e configurazione corrente