IPortWavePciStream::ReleaseMapping 메서드(portcls.h)

이 메서드는 ReleaseMapping IPortWavePciStream::GetMapping에 대한 이전 호출에서 얻은 매핑을 해제합니다.

구문

NTSTATUS ReleaseMapping(
  [in] PVOID Tag
);

매개 변수

[in] Tag

해제할 매핑을 식별하는 태그 값을 지정합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

ReleaseMapping 는 호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 메서드가 적절한 오류 코드를 반환합니다.

설명

태그 매개 변수를 원래 매핑을 가져온 IPortWavePciStream::GetMapping 호출에서 매핑을 식별하는 데 사용한 것과 동일한 태그 값으로 설정합니다.

미니포트 드라이버는 IPortWavePciStream::GetMapping에 대한 호출에서 매핑을 획득하는 순서를 추적해야 하며 동일한 순서로 매핑을 해제해야 합니다.

잠재적인 교착 상태를 방지하려면 미니포트 드라이버가 호출 ReleaseMapping하는 동안 스핀 잠금을 유지하지 않아야 합니다. 스핀 잠금을 사용하여 다중 프로세서 시스템의 공유 데이터 구조 및 주변 장치에 대한 액세스를 직렬화하는 코드 예제는 Microsoft WDK(Windows Driver Kit)의 ac97 샘플 오디오 드라이버를 참조하세요. 샘플 코드는 호출하기 전에 KeReleaseSpinLock 을 호출하고 호출 ReleaseMappingKeAcquireSpinLock 을 호출 ReleaseMapping합니다. 스핀 잠금을 해제하고 획득하기 위한 호출 사이에 드라이버 스레드는 스핀 잠금으로 보호되는 데이터 또는 주변 기기에 대한 단독 액세스 권한이 있다고 가정해서는 안 됩니다. 드라이버 검증 도구( 드라이버 검증 도구 웹 사이트에서 이 도구의 설명 참조)는 호출 중에 활성 스핀 잠금을 확인합니다. 이를 ReleaseMapping감지하면 0xC4(교착 상태 감지) 버그 검사가 생성됩니다.

요구 사항

   
대상 플랫폼 유니버설
헤더 portcls.h(Portcls.h 포함)
IRQL <=DISPATCH_LEVEL

참고 항목

IMiniportWavePciStream::RevokeMappings

IPortWavePciStream

IPortWavePciStream::GetMapping

KeAcquireSpinLock

KeReleaseSpinLock