다음을 통해 공유


WdfMemoryCreateFromLookaside 함수(wdfmemory.h)

[KMDF에만 적용]

WdfMemoryCreateFromLookaside 메서드는 프레임워크 메모리 개체를 만들고 지정된 lookaside 목록에서 메모리 버퍼를 가져옵니다.

구문론

NTSTATUS WdfMemoryCreateFromLookaside(
  [in]  WDFLOOKASIDE Lookaside,
  [out] WDFMEMORY    *Memory
);

매개 변수

[in] Lookaside

WdfLookasideListCreate호출하여 가져온 프레임워크 lookaside-list 개체에 대한 핸들입니다.

[out] Memory

새 프레임워크 메모리 개체에 대한 핸들을 받는 위치에 대한 포인터입니다.

반환 값

WdfMemoryCreateFromLookaside 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환합니다.

반환 코드 설명
파라미터 값이 잘못되었습니다
잘못된 매개 변수가 검색되었습니다.
상태_불충분한_리소스
메모리가 부족했습니다.
 

이 메서드는 다른NTSTATUS 값을 반환할 수도 있습니다.

드라이버에서 잘못된 개체 핸들을 제공하면 버그 검사가 수행됩니다.

비고

드라이버가 WdfLookasideListCreate 호출하여 lookaside-list 개체를 만든 후 드라이버는 WdfMemoryCreateFromLookaside 호출하여 lookaside 목록에서 버퍼를 가져올 수 있습니다.

프레임워크는 버퍼를 나타내는 메모리 개체에 대한 핸들을 제공합니다. 프레임워크는 메모리 개체를 만들 때 드라이버가 WdfMemoryCreateFromLookaside호출할 때 제공한 개체 특성을 사용합니다.

드라이버가 lookaside 목록에서 가져온 메모리 개체 사용을 마쳤으면 드라이버는 WdfObjectDelete 호출하여 메모리 개체를 lookaside 목록으로 반환해야 합니다.

프레임워크 메모리 개체 및 lookaside 목록에 대한 자세한 내용은 메모리 버퍼 사용을 참조하세요.

lookaside-list 버퍼가 페이징 가능한 메모리 풀에서 할당되는 경우 WdfMemoryCreateFromLookaside 메서드는 IRQL <= APC_LEVEL 호출해야 합니다. 그렇지 않으면 IRQL <= DISPATCH_LEVEL 메서드를 호출할 수 있습니다.

예시

다음 코드 예제에서는 lookaside 목록을 만들고 드라이버 정의 디바이스 개체 컨텍스트 공간에 목록의 핸들을 저장합니다. 그런 다음 드라이버는 lookaside 목록에서 버퍼를 가져옵니다.

PDRIVER_CONTEXT  driverContext;
WDFMEMORY  memHandle;

driverContext = GetDriverContext(driver);

status = WdfLookasideListCreate(
                                WDF_NO_OBJECT_ATTRIBUTES,
                                sizeof(MY_LOOKASIDE_BUFFER),
                                NonPagedPool,
                                WDF_NO_OBJECT_ATTRIBUTES,
                                MY_POOL_TAG,
                                &driverContext->LookasideListHandle
                                );
...
status = WdfMemoryCreateFromLookaside(
                                      driverContext->LookasideListHandle,
                                      &memHandle
                                      );

요구 사항

요구 사항 가치
대상 플랫폼 보편적
최소 KMDF 버전 1.0
헤더 wdfmemory.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL 설명 섹션을 참조하세요.
DDI 규정 준수 규칙 DriverCreate(kmdf)

참고하십시오

WdfLookasideListCreate

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectDelete