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