다음을 통해 공유


StorPortAllocateContiguousMemorySpecifyCacheNode 함수(storport.h)

StorPortAllocateContiguousMemorySpecifyCacheNode 루틴은 물리적으로 연속되지 않은 비포장 메모리 범위를 할당합니다.

구문

ULONG StorPortAllocateContiguousMemorySpecifyCacheNode(
  [in]           PVOID               HwDeviceExtension,
  [in]           SIZE_T              NumberOfBytes,
  [in]           PHYSICAL_ADDRESS    LowestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS    HighestAcceptableAddress,
  [in, optional] PHYSICAL_ADDRESS    BoundaryAddressMultiple,
  [in]           MEMORY_CACHING_TYPE CacheType,
  [in]           NODE_REQUIREMENT    PreferredNode,
  [out]          PVOID               *BufferPointer
);

매개 변수

[in] HwDeviceExtension

HBA(호스트 버스 어댑터)의 하드웨어 디바이스 확장에 대한 포인터입니다.

[in] NumberOfBytes

할당할 바이트 수입니다.

[in] LowestAcceptableAddress

할당에 유효한 가장 낮은 실제 주소입니다. 예를 들어 디바이스가 8MB에서 16MB 범위의 실제 메모리만 참조할 수 있는 경우 이 값은 0x800000(8MB)로 설정됩니다.

[in] HighestAcceptableAddress

할당에 유효한 가장 높은 실제 주소입니다. 예를 들어 디바이스가 16MB 미만의 실제 메모리만 참조할 수 있는 경우 이 값은 0xFFFFFF(16MB - 1)로 설정됩니다.

[in, optional] BoundaryAddressMultiple

이 할당이 교차해서는 안 되는 물리적 주소 배수입니다.

[in] CacheType

매핑에 원하는 캐시 유형입니다.

[in] PreferredNode

해당 노드에서 페이지를 사용할 수 있는 경우 할당을 수행해야 하는 기본 노드입니다.

[out] BufferPointer

할당된 메모리 블록의 시작 주소를 받는 변수입니다. 이 루틴에서 돌아오면 이 변수가 0이면 요청을 충족하기 위해 연속 범위를 찾을 수 없습니다. 이 변수가 NULL이 아닌 경우 할당된 물리적 연속 메모리에 대한 포인터(예: 시스템의 페이지가 지정되지 않은 부분의 가상 주소)가 포함됩니다.

반환 값

StorPortAllocateContiguousMemorySpecifyCacheNode 루틴은 다음 상태 코드 중 하나를 반환합니다.

반환 코드 설명
STOR_STATUS_NOT_IMPLEMENTED
이 함수는 활성 운영 체제에서 구현되지 않습니다.
STOR_STATUS_SUCCESS
작업이 완료되었습니다.
STOR_STATUS_INSUFFICIENT_RESOURCES
리소스가 부족하여 작업이 요청된 메모리를 할당하지 못했습니다.

설명

요청이 실패하면 BufferPointerNULL로 설정됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 storport.h(Storport.h 포함)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 StorPortIrql(storport)