共用方式為


OID_GEN_CO_GET_TIME_CAPS

注意

OID_GEN_CO_GET_TIME_CAPS與OID_GEN_GET_TIME_CAPS相同。

OID_GEN_CO_GET_TIME_CAPS OID 要求迷你埠驅動程式傳回其功能,以報告格式化為GEN_GET_TIME_CAPS結構的 NIC 本地時間,其定義如下:

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

此結構的成員包含下列資訊:

旗標
下列旗標可以一起成為 ORed。 所有未指定的旗標都必須設定為零。

READABLE_LOCAL_CLOCK
設定時,表示 NIC 上是否有可讀取時鐘。 即使沒有這類硬體時鐘,迷你埠驅動程式仍可藉由呼叫 NdisGetCurrentSystemTime 來使用系統時鐘,只要其報告 ClockPrecision 成員中的正確精確度即可。

CLOCK_NETWORK_DERIVED
設定時,表示 NIC 的本地時間衍生自網路連線,而不是自由執行的上線時鐘。

CLOCK_PRECISION
設定時,表示 ClockPrecision 成員包含有效資訊。

RECEIVE_TIME_INDICATION_CAPABLE
設定時,表示 NIC 硬體可以記下接收所接收 PDU 第一個資料格的當地時間,而迷你埠驅動程式會在指出封包至通訊協定時,針對每個 PDU 傳播此接收時間。

TIMED_SEND_CAPABLE
設定時,表示 NIC 可以根據其當地時間排程要傳輸的封包。 通訊協定可以使用NDIS_SET_PACKET_TIME_TO_SEND,在封包描述元的頻外資料區塊中設定 TimeToSend 時間戳記。 設定時間戳記不會影響實際傳輸封包時;相反地,時間戳記會用於記錄保留。 通訊協定驅動程式可以使用時間戳來判斷完成分頁傳送所需的時間。

TIME_STAMP_CAPABLE
設定時,表示 NIC 可以在傳出封包的適當欄位中 (戳記) 傳送封包的第一個位元組的時間,而且 NIC 可以從輸入封包的相同欄位中擷取這個時間。

ClockPrecision
指定每百萬個零件的時鐘精確度。 若要將此資訊視為有效,必須設定CLOCK_PRECISION旗標。

備註

迷你埠驅動程式可以提供特定計時參數的支援,即使沒有本機或網路時鐘也一定會支援。 特別是,迷你埠驅動程式可以使用系統時鐘來接收時間指示、計時傳送,甚至是時間戳記。 以 NIC 為基礎的時鐘比較好,因為它可能會提供比系統時鐘低延遲來存取的精確度較高。 在所有情況下,迷你埠驅動程式都必須指定其所使用的時鐘精確度。 這可讓通訊協定判斷如何使用迷你埠驅動程式的計時支援。

如果迷你埠驅動程式回報可讀取時鐘是否存在,則必須準備好立即回應OID_GEN_GET_NETCARD_TIME查詢。 迷你埠驅動程式對此呼叫的回應是時間關鍵,因此必須是同步的。

規格需求

版本:Windows Vista 和更新版本 標頭:Ntddndis.h (包含 Ndis.h)