다음을 통해 공유


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을 호출합니다. 요청이 실패하면 BufferPointerNULL로 설정됩니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 storport.h(Storport.h 포함)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport)

추가 정보

StorPortFreePool