통신 리소스 핸들
프로세스는 CreateFile 함수를 사용하여 통신 리소스에 대한 핸들을 엽니다. 예를 들어 COM1을 지정하면 직렬 포트에 대한 핸들이 열리고 LPT1은 병렬 포트에 대한 핸들을 엽니다. 지정된 리소스가 현재 다른 프로세스에서 사용 중인 경우 CreateFile 이 실패합니다. 프로세스의 모든 스레드는 CreateFile 에서 반환된 핸들을 사용하여 리소스에 액세스하는 함수의 리소스를 식별할 수 있습니다.
프로세스는 CreateFile 을 호출하여 통신 리소스를 열 때 다음 특성을 지정합니다.
- 지정된 리소스에 대해 존재하는 읽기/쓰기 액세스 유형입니다.
- 자식 프로세스에서 핸들을 상속할 수 있는지 여부입니다.
- 겹치는(비동기) I/O 작업에서 핸들을 사용할 수 있는지 여부입니다. 겹치는 작업에 대한 설명은 동기화를 참조 하세요.
프로세스에서 CreateFile 을 사용하여 통신 리소스를 여는 경우 다음 매개 변수에 대해 특정 값을 지정해야 합니다.
- fdwShareMode 매개 변수는 0이어야 하며 단독 액세스를 위해 리소스를 열어야 합니다.
- fdwCreate 매개 변수는 OPEN_EXISTING 플래그를 지정해야 합니다.
- hTemplateFile 매개 변수는 NULL이어야 합니다.
CreateFile을 사용하여 디바이스에 대한 핸들을 직접 열 때 애플리케이션은 특수 문자 "\\ .\"를 사용하여 디바이스를 식별해야 합니다. 예를 들어 A를 구동하는 핸들을 열려면 CreateFile의 lpszName 매개 변수에 \\ .\a:를 지정합니다. 호출 프로세스는 DeviceIoControl 함수의 핸들을 사용하여 제어 코드를 디바이스로 보낼 수 있습니다.