WDF_MEMORY_DESCRIPTOR_INIT_HANDLE 함수(wdfmemory.h)

[KMDF 및 UMDF에 적용]

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE 함수는 지정된 프레임워크 메모리 개체를 설명하도록 WDF_MEMORY_DESCRIPTOR 구조를 초기화합니다.

구문

void WDF_MEMORY_DESCRIPTOR_INIT_HANDLE(
  [out]          PWDF_MEMORY_DESCRIPTOR Descriptor,
  [in]           WDFMEMORY              Memory,
  [in, optional] PWDFMEMORY_OFFSET      Offsets
);

매개 변수

[out] Descriptor

WDF_MEMORY_DESCRIPTOR 구조체에 대한 포인터입니다.

[in] Memory

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

[in, optional] Offsets

WDFMEMORY_OFFSET 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

없음

설명

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE 함수는 지정된 WDF_MEMORY_DESCRIPTOR 구조체를 0으로 설정하고 구조체의 Type 멤버를 WdfMemoryDescriptorTypeHandle로 설정합니다. 그런 다음 구조체의 u.HandleType.Memoryu.HandleType.Offsets 멤버를 각각 MemoryOffsets 매개 변수가 지정하는 값으로 설정합니다.

예제

다음 코드 예제에서는 I/O 요청의 입력 버퍼를 나타내는 프레임워크 메모리 개체에 대한 핸들을 가져옵니다. 이 예제에서는 메모리 개체 핸들을 사용하여 WDF_MEMORY_DESCRIPTOR 구조를 초기화합니다. 그런 다음, 이 예제에서는 WDF_USB_CONTROL_SETUP_PACKET 구조를 초기화하고 USB 제어 전송 요청을 I/O 대상으로 보냅니다.

WDFMEMORY  memory;
WDF_MEMORY_DESCRIPTOR  memDesc;
WDF_USB_CONTROL_SETUP_PACKET  controlSetupPacket;
NTSTATUS  status;

status = WdfRequestRetrieveInputMemory(
                                       Request,
                                       &memory
                                       );
if (!NT_SUCCESS(status)) {
    break;
}
WDF_MEMORY_DESCRIPTOR_INIT_HANDLE(
                                  &memDesc,
                                  memory,
                                  NULL
                                  );

WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(
                                         &controlSetupPacket,
                                         BmRequestHostToDevice,
                                         BmRequestToDevice,
                                         USBFX2LK_SET_BARGRAPH_DISPLAY,
                                         0,
                                         0
                                         );

status = WdfUsbTargetDeviceSendControlTransferSynchronously(
                                  pDevContext->UsbDevice,
                                  NULL,
                                  NULL,
                                  &controlSetupPacket,
                                  &memDesc,
                                  (PULONG)&bytesTransferred
                                  );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfmemory.h(Wdf.h 포함)
DDI 규정 준수 규칙 MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

추가 정보

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL