WdfMemoryGetBuffer 함수(wdfmemory.h)

[KMDF 및 UMDF에 적용]

WdfMemoryGetBuffer 메서드는 지정된 메모리 개체와 연결된 버퍼에 대한 포인터를 반환합니다.

구문

PVOID WdfMemoryGetBuffer(
  [in]            WDFMEMORY Memory,
  [out, optional] size_t    *BufferSize
);

매개 변수

[in] Memory

프레임워크 메모리 개체에 대한 핸들입니다.

[out, optional] BufferSize

메모리 버퍼의 크기(바이트)를 수신하는 위치에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

WdfMemoryGetBuffer 는 메모리 버퍼에 대한 포인터를 반환합니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

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

WdfMemoryGetBuffer는 모든 IRQL에서 호출할 수 있습니다.

예제

다음 코드 예제는 kmdf_fx2 샘플 드라이버의 EvtUsbTargetPipeReadComplete 콜백 함수를 기반으로 합니다. 이 예제에서는 콜백 함수가 수신하는 메모리 개체와 연결된 버퍼를 가져옵니다. 이 예제에서는 버퍼의 데이터를 드라이버가 정의한 디바이스 개체 컨텍스트 공간으로 복사합니다.

VOID
OsrFxEvtUsbInterruptPipeReadComplete(
    WDFUSBPIPE  Pipe,
    WDFMEMORY  Buffer,
    size_t  NumBytesTransferred,
    WDFCONTEXT  Context
    )
{
    PUCHAR  switchState = NULL;
    WDFDEVICE  device;
    PDEVICE_CONTEXT  pDeviceContext = Context;

    device = WdfObjectContextGetObject(pDeviceContext);
    switchState = WdfMemoryGetBuffer(Buffer, NULL);
    pDeviceContext->CurrentSwitchState = *switchState;
}

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfmemory.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL 모든 수준
DDI 규정 준수 규칙 DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

추가 정보

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject