共用方式為


IPortWavePciStream::ReleaseMapping 方法 (portcls.h)

ReleaseMapping 方法會釋放先前呼叫 IPortWavePciStream::GetMapping取得的對應。

語法

NTSTATUS ReleaseMapping(
  [in] PVOID Tag
);

參數

[in] Tag

指定標記值,識別要釋放的對應。 如需詳細資訊,請參閱下列一節。

傳回值

如果呼叫成功,ReleaseMapping 會傳回STATUS_SUCCESS。 否則,方法會傳回適當的錯誤碼。

言論

Tag 參數設定為您用來識別呼叫 IPortWavePciStream::GetMapping 原始取得對應的相同標記值。

迷你埠驅動程式必須追蹤從呼叫取得其對應的順序,IPortWavePciStream::GetMapping,而且必須以相同的順序釋放對應。

若要避免潛在的死結,迷你埠驅動程序必須在呼叫 ReleaseMapping時避免按住微調鎖定。 如需使用微調鎖定串行化多處理器系統中共用數據結構和周邊存取的程式代碼範例,請參閱 Microsoft Windows 驅動程式套件 (WDK) 中的 ac97 範例音訊驅動程式。 在呼叫 ReleaseMapping之後,範例程式代碼會先呼叫 KeReleaseSpinLock,再呼叫 ReleaseMapping 並呼叫 KeAcquireSpinLock。 在釋放和取得微調鎖定的呼叫之間,驅動程式線程不得假設其具有由微調鎖定所防護之數據或周邊的獨佔存取權。 驅動程式驗證器工具(請參閱 驅動程式驗證器 網站中此工具的描述)會在呼叫 ReleaseMapping期間檢查作用中的微調鎖定;如果偵測到其中一個,就會產生0xC4(死結偵測)錯誤檢查。

要求

要求 價值
目標平臺 普遍
標頭 portcls.h (包括 Portcls.h)
IRQL <=DISPATCH_LEVEL

另請參閱

IMiniportWavePciStream::RevokeMappings

IPortWavePciStream

IPortWavePciStream::GetMapping

KeAcquireSpinLock

KeReleaseSpinLock