WdfDeviceMapIoSpace 함수(wdfdevice.h)

[UMDF에만 적용]

WdfDeviceMapIoSpace 함수는 지정된 실제 주소 범위를 시스템 주소 공간에 매핑하고 의사 기본 주소를 반환합니다.

구문

NTSTATUS WdfDeviceMapIoSpace(
  [in]  WDFDEVICE           Device,
  [in]  PHYSICAL_ADDRESS    PhysicalAddress,
  [in]  SIZE_T              NumberOfBytes,
  [in]  MEMORY_CACHING_TYPE CacheType,
  [out] PVOID               *PseudoBaseAddress
);

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] PhysicalAddress

매핑할 I/O 범위의 시작 64비트 물리적 주소를 지정합니다.

[in] NumberOfBytes

매핑할 바이트 수를 나타내는 0보다 큰 값을 지정합니다.

[in] CacheType

실제 주소 범위를 매핑하는 데 사용할 캐시 특성을 나타내는 MEMORY_CACHING_TYPE 값을 지정합니다. MEMORY_CACHING_TYPE 열거형 형식은 Wdfdevice.h에 정의되어 있습니다.

[out] PseudoBaseAddress

의사 기준 주소에 대한 포인터를 받는 위치의 주소입니다.

반환 값

작업이 성공하면 함수는 STATUS_SUCCESS 반환합니다.

함수는 다른 NTSTATUS 값을 반환할 수 있습니다.

설명

이 함수는 IWDFDevice3::MapIoSpace에 해당하는 UMDF 버전 2입니다.

드라이버는 CM_PARTIAL_RESOURCE_DESCRIPTOR 구조에서CmResourceTypeMemory 형식의 변환된 리소스를 수신하는 경우 디바이스 시작 중에 이 함수를 호출해야 합니다. WdfDeviceMapIoSpace는 리소스 목록에 반환된 실제 주소를 의사 기본 주소라고 하는 프레임워크 관리 주소에 매핑합니다.

그런 다음 드라이버는 의사 기본 주소를 사용하여 WDF_READ_REGISTER_Xxx 및 WDF_WRITE_REGISTER_Xxx 함수를 사용하여 디바이스 레지스터에 액세스할 수 있습니다.

WdfDeviceMapIoSpace를 호출하는 드라이버는 UmdfDirectHardwareAccess INF 지시문을 AllowDirectHardwareAccess로 설정해야 합니다.

드라이버가 UmdfRegisterAccessMode INF 지시문을 RegisterAccessUsingUserModeMapping으로 설정하는 경우 WdfDeviceMapIoSpace 를 호출하면 지정된 실제 주소 범위도 WdfDeviceGetHardwareRegisterMappedAddress를 호출하여 드라이버가 나중에 액세스할 수 있는 사용자 모드 기본 주소 범위에 매핑됩니다.

UMDF 드라이버에서 사용할 수 있는 INF 지시문에 대한 자세한 내용은 INF 파일에서 WDF 지시문 지정을 참조하세요.

UMDF 버전 2부터 하드웨어 리소스를 구문 분석하는 방법에 대한 자세한 내용은 UMDF 드라이버에서 하드웨어 리소스 처리를 참조하세요.

PHYSICAL_ADDRESS 형식은 다음과 같이 Wudfwdm.h에 정의됩니다.

typedef LARGE_INTEGER PHYSICAL_ADDRESS;

드라이버가 메모리 매핑된 레지스터 리소스를 찾고 매핑하는 방법을 보여 주는 예제는 디바이스 레지스터 읽기 및 쓰기를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1
대상 플랫폼 유니버설
최소 UMDF 버전 2.0
머리글 wdfdevice.h(Wdf.h 포함)
라이브러리 WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

추가 정보

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace