WdfIoTargetWdmGetTargetDeviceObject 함수(wdfiotarget.h)

[KMDF에만 적용]

WdfIoTargetWdmGetTargetDeviceObject 메서드는 지정된 로컬 또는 원격 I/O 대상과 연결된 WDM(Windows 드라이버 모델) 디바이스 개체에 대한 포인터를 반환합니다.

구문

PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
  [in] WDFIOTARGET IoTarget
);

매개 변수

[in] IoTarget

WdfDeviceGetIoTarget 또는 WdfIoTargetCreate 또는 특수 I/O 대상에서 제공하는 메서드에 대한 이전 호출에서 가져온 로컬 또는 원격 I/O 대상 개체에 대한 핸들입니다.

반환 값

WdfIoTargetWdmGetTargetDeviceObject 는 WDM DEVICE_OBJECT 구조체에 대한 포인터를 반환합니다.

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

설명

대부분의 프레임워크 기반 드라이버는 I/O 대상의 WDM 디바이스 개체에 액세스할 필요가 없습니다.

WdfIoTargetWdmGetTargetDeviceObject 메서드가 반환하는 포인터는 드라이버가 WdfIoTargetClose 또는 WdfIoTargetCloseForQueryRemove를 호출하거나 원격 I/O 대상 개체가 삭제될 때까지 유효합니다. 드라이버가 원격 I/O 대상 개체에 대해 EvtCleanupCallback 함수를 제공하고 원격 I/O 대상이 닫기 전에 개체가 삭제되면 EvtCleanupCallback 함수가 반환될 때까지 포인터가 유효합니다.

드라이버가 제거된 후 WDM 디바이스 개체에 액세스하려고 하면 드라이버로 인해 시스템이 충돌할 수 있습니다. 알림 샘플은 드라이버가 I/O 대상이 제거되면 알림을 받도록 EvtIoTargetQueryRemove 콜백 함수를 제공하는 방법을 보여 줍니다.

WdfIoTargetWdmGetTargetDeviceObject에 대한 자세한 내용은 일반 I/O 대상에 대한 정보 가져오기를 참조하세요.

I/O 대상에 대한 자세한 내용은 I/O 대상 사용을 참조하세요.

예제

다음 코드 예제에서는 I/O 대상의 WDM DEVICE_OBJECT 구조를 확인하여 대상이 직접 I/O 작업을 지원하는지 확인합니다.

if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
 & DO_DIRECT_IO)) {
    ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
    return STATUS_INVALID_DEVICE_REQUEST;
}

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfiotarget.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject