UMDF에서 일반 I/O 대상 초기화
경고
UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.
보관된 UMDF 1 샘플은 Windows 11 버전 22H2 - 2022년 5월 드라이버 샘플 업데이트에서 찾을 수 있습니다.
자세한 내용은 UMDF를 사용하여 시작 참조하세요.
드라이버가 일반 I/O 대상을 초기화하는 데 사용하는 단계는 I/O 대상이 로컬 인지 원격인지에 따라 달라집니다.
로컬 I/O 대상 초기화
로컬 I/O 대상에는 디바이스의 기본 I/O 대상 및 파일 핸들 기반 I/O 대상이 포함됩니다.
프레임워크는 드라이버가 IWDFDriver::CreateDevice 메서드를 호출할 때 디바이스에 대한 드라이버의 기본 I/O 대상을 초기화합니다. 드라이버가 디바이스의 기본 I/O 대상에 액세스할 수 있도록 하는 IWDFIoTarget 인터페이스를 검색하기 위해 드라이버는 IWDFDevice::GetDefaultIoTarget 메서드를 호출합니다.
대부분의 드라이버는 기본 I/O 대상으로만 요청을 보냅니다.
UMDF 드라이버가 네트워크 소켓 인터페이스와 같은 핸들 기반 인터페이스에 I/O 요청을 보내야 하는 경우 드라이버는 파일 핸들 기반 I/O 대상 개체를 만들어야 합니다. 파일 핸들 기반 I/O 대상 개체를 만들려면 드라이버는 다음을 수행해야 합니다.
디바이스 IWDFDevice 인터페이스의 QueryInterface 메서드를 호출하여 IWDFFileHandleTargetFactory 인터페이스에 대한 포인터를 검색합니다.
Win32 CreateFile, CreateNamedPipe 또는 소켓 함수를 호출하여 파일, 명명된 파이프 또는 소켓 에 대한 Win32 핸들을 가져옵니다.
IWDFFileHandleTargetFactory::CreateFileHandleTarget 메서드를 호출하여 파일, 파이프 또는 소켓에 대한 파일 핸들 기반 I/O 대상 개체를 만듭니다.
IWDFFileHandleTargetFactory 인터페이스를 검색하고, Win32 핸들을 가져오고, 파일 핸들 기반 I/O 대상 개체를 만드는 방법을 보여 주는 코드 예제는 IWDFFileHandleTargetFactory::CreateFileHandleTarget의 코드 예제를 참조하세요.
드라이버가 파일 핸들 기반 I/O 대상을 만든 후 드라이버는 I/O 대상에 I/O 요청을 보낼 수 있습니다.
원격 I/O 대상 초기화
드라이버가 원격 I/O 대상을 사용하려면 먼저 다음과 같이 원격 대상 개체를 만들고 대상을 열어야 합니다.
IWDFDevice2::CreateRemoteTarget을 호출하여 원격 대상 개체를 만듭니다.
IWDFRemoteTarget::OpenFileByName(파일의 경우) 또는 IWDFRemoteTarget::OpenRemoteInterface(디바이스 인터페이스의 경우)를 호출하여 I/O 작업에 대한 대상을 엽니다.