連結操作數的驅動程式批注
大型函式系列會採用其其中一個參數,其變數的位址應該使用連結處理器指令來存取。 這些是快取讀取不可部分完成的指令,如果操作數未正確使用,則非常細微的錯誤結果。
針對函式參數使用下列註釋,將它識別為連結操作數。
Interlocked 操作數註釋 | Description |
---|---|
_Interlocked_operand_ | 批註函式參數是其中一個連結函式的目標操作數。 這些操作數必須具有特定的其他屬性。 |
_Interlocked_operand_批注的函式參數預期會在進程之間共用。 搭配這個註釋使用的變數必須:
宣告 為 volatile。
不是局部變數。 使用局部變數通常表示對函式意圖的誤解。 即使局部變數是共用的,系統分頁需求仍會導致在另一個程式中解決變數有問題。
除非是連結函式,否則無法存取。 若未明確使用連結函式,作業可能會存取過時的數據、只發生在單一處理器的快取中,或可能會延遲到達系統的其餘部分。
系統提供的函式已針對已連結的操作數加上批註。
下列範例顯示 InterlockedExchange 函式的註釋。 此批注會指定目標參數一律必須使用連結的作業來存取。
LONG
InterlockedExchange (
_Inout_ _Interlocked_operand_ LONG volatile *Target,
_In_ LONG Value
);