OPLOCK_KEY_ECP_CONTEXT結構 (ntifs.h)
OPLOCK_KEY_ECP_CONTEXT 結構可用來將oplock 金鑰附加至檔案。 此結構已過時,適用於 Windows 8 和更新版本;篩選應該改用 DUAL_OP_LOCK_KEY_ECP_CONTEXT。
語法
typedef struct _OPLOCK_KEY_ECP_CONTEXT {
GUID OplockKey;
ULONG Reserved;
} OPLOCK_KEY_ECP_CONTEXT, *POPLOCK_KEY_ECP_CONTEXT;
成員
OplockKey
oplock 金鑰的 GUID。 此 GUID 會在不同的句柄之間共用,並將它們識別為屬於相同用戶端快取。 當兩個句柄共用相同的 oplock 索引鍵時,在一個句柄上執行的要求將不會中斷另一個句柄上的未處理 oplock。
Reserved
保留。 必須設定為零。
言論
如需有關如何在建立檔案時使用 ECP 將額外資訊與檔案產生關聯的資訊,請參閱 搭配使用額外建立參數搭配IRP_MJ_CREATE作業。
小型篩選不應該在看到 ECP 從上面下來時改變OPLOCK_KEY_ECP_CONTEXT結構的內容。 您應該使用它來只擷取 oplock 金鑰 ECP 的相關信息。 如需此問題的詳細資訊,請參閱 System-Defined ECP。
oplock 機碼可讓應用程式開啟相同數據流的多個句柄,而不會中斷應用程式自己的 oplock。 只有在應用程式收到共享違規 (STATUS_SHARING_VIOLATION) 之後,才會發生oplock中斷。
當數據流開啟時,數據流句柄上會授與 Oplocks。 這類數據流句柄可以與oplock金鑰相關聯。 呼叫端可以將 oplock 金鑰明確提供給 IoCreateFileEx 例程,以建立數據流句柄。 如果呼叫端在建立句柄時未明確指定 oplock 索引鍵,則操作系統會將句柄視為有與句柄相關聯的唯一 oplock 索引鍵,讓句柄的密鑰與任何其他句柄上的任何其他索引鍵不同。 如果在授與 oplock 的句柄以外的句柄上收到檔案作業,且與 oplock 句柄相關聯的 oplock 密鑰與作業句柄相關聯的密鑰不同,且該作業與目前授與的 oplock 不相容,則該 oplock 會中斷。 即使作業是執行不相容作業的相同進程或線程,oplock 也會中斷。 例如,如果進程開啟了授與獨佔 oplock 的數據流,而相同的進程會再次開啟相同的數據流,方法是使用不同的 (或否) oplock 索引鍵,就會立即中斷獨佔 oplock。
建立句柄時,Oplock 索引鍵會與句柄相關聯。 即使未授與任何 oplock,您也可以將句柄與 oplock 密鑰產生關聯。
如需 oplocks 和 oplock 索引鍵的詳細資訊,請參閱
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 7;從 Windows 8 開始過時 |
標頭 | ntifs.h |