共用方式為


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,並在呼叫 之後呼叫ReleaseMappingKeAcquireSpinLock。 在釋放和取得微調鎖定的呼叫之間,驅動程式線程不得假設其具有線程微調鎖定所防護之數據或周邊的獨佔存取權。 驅動程式驗證器工具 (在 驅動程序驗證程序 網站中看到此工具的描述,) 在呼叫 ReleaseMapping期間檢查作用中的微調鎖定;如果偵測到,它會產生0xC4 (死结侦测,) 錯誤檢查。

規格需求

需求
目標平台 Universal
標頭 portcls.h (包含 Portcls.h)
IRQL <=DISPATCH_LEVEL

另請參閱

IMiniportWavePciStream::RevokeMappings

IPortWavePciStream

IPortWavePciStream::GetMapping

KeAcquireSpinLock

KeReleaseSpinLock