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) |