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 루틴은 다음 상태 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
이 함수는 활성 운영 체제에서 구현되지 않습니다. |
|
작업이 완료되었습니다. |
|
리소스가 부족하여 작업이 요청된 메모리를 할당하지 못했습니다. |
설명
요청이 실패하면 BufferPointer 가 NULL로 설정됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | storport.h(Storport.h 포함) |
IRQL | <=DISPATCH_LEVEL |
DDI 규정 준수 규칙 | StorPortIrql(storport) |