共用方式為


連結操作數的驅動程式批注

大型函式系列會採用其其中一個參數,其變數的位址應該使用連結處理器指令來存取。 這些是快取讀取不可部分完成的指令,如果操作數未正確使用,則非常細微的錯誤結果。

針對函式參數使用下列註釋,將它識別為連結操作數。

Interlocked 操作數註釋 Description
_Interlocked_operand_ 批註函式參數是其中一個連結函式的目標操作數。 這些操作數必須具有特定的其他屬性。

_Interlocked_operand_批注的函式參數預期會在進程之間共用。 搭配這個註釋使用的變數必須:

  • 宣告 為 volatile。

  • 不是局部變數。 使用局部變數通常表示對函式意圖的誤解。 即使局部變數是共用的,系統分頁需求仍會導致在另一個程式中解決變數有問題。

  • 除非是連結函式,否則無法存取。 若未明確使用連結函式,作業可能會存取過時的數據、只發生在單一處理器的快取中,或可能會延遲到達系統的其餘部分。

系統提供的函式已針對已連結的操作數加上批註。

下列範例顯示 InterlockedExchange 函式的註釋。 此批注會指定目標參數一律必須使用連結的作業來存取。

LONG  
InterlockedExchange (  
    _Inout_ _Interlocked_operand_ LONG volatile *Target,  
    _In_ LONG Value  
    );  

Drivers 的 SAL 2.0 註釋