StorPortAllocatePool 함수(storport.h)
StorPortAllocatePool 루틴은 연속되지 않은 페이징되지 않은 풀 메모리 블록을 할당합니다.
구문
ULONG StorPortAllocatePool(
[in] PVOID HwDeviceExtension,
[in] ULONG NumberOfBytes,
[in] ULONG Tag,
[out] PVOID *BufferPointer
);
매개 변수
[in] HwDeviceExtension
HBA(호스트 버스 어댑터)의 하드웨어 디바이스 확장에 대한 포인터입니다.
[in] NumberOfBytes
할당되는 메모리 블록의 크기(바이트)입니다.
[in] Tag
할당된 메모리의 풀 태그입니다. 드라이버는 풀 태그를 작은따옴표로 구분된 4개의 ASCII 문자 문자열로 지정합니다. 문자열은 일반적으로 역순으로 지정됩니다.
[out] BufferPointer
할당된 메모리 블록의 주소에 대한 포인터이거나 성공하지 못한 경우 NULL 입니다.
반환 값
StorPortAllocatePool은 다음 상태 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | 이 함수는 활성 운영 체제에서 구현되지 않습니다. |
STOR_STATUS_SUCCESS | 루틴이 요청된 크기의 메모리 블록을 성공적으로 할당했음을 나타냅니다. |
STOR_STATUS_INVALID_PARAMETER | 버퍼 주소를 받을 포인터는 NULL입니다. |
STOR_STATUS_INVALID_IRQL | 잘못된 IRQL에서 호출되었습니다. |
STOR_STATUS_INSUFFICIENT_RESOURCES | 요청된 크기의 메모리를 할당할 수 없습니다. |
설명
미니포트 드라이버는 StorPortAllocatePool 루틴을 호출하여 페이징되지 않은 풀에서 연속되지 않은 메모리 블록을 할당합니다. 메모리 블록을 해제하기 위해 미니포트 드라이버는 StorPortFreePool을 호출합니다. 요청이 실패하면 BufferPointer 가 NULL로 설정됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | storport.h(Storport.h 포함) |
IRQL | <=DISPATCH_LEVEL |
DDI 규정 준수 규칙 | StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport) |