다음을 통해 공유


직렬로 연결된 주변 장치 디바이스에 대한 연결 ID

SerCx2는 주변 디바이스가 영구적으로 연결된 직렬 포트를 관리합니다. 이러한 물리적 연결은 고정되어 있으므로 하드웨어 플랫폼용 ACPI 펌웨어에서 설명할 수 있습니다. SerCx2에서 관리하는 직렬 포트에 연결된 주변 장치용 드라이버를 작성하는 경우 드라이버가 수신하는 하드웨어 리소스 목록에는 플랫폼 펌웨어에서 디바이스 연결 정보를 캡슐화하는 연결 ID 가 포함됩니다.

시스템 시작 시 PnP(플러그 앤 플레이) 관리자는 PnP 디바이스와 비PnP 디바이스를 모두 열거합니다. 직렬 포트에 고정된 연결이 있는 비 PnP 주변 디바이스의 경우 PnP 관리자는 하드웨어 플랫폼의 ACPI 펌웨어를 쿼리하여 디바이스에 액세스하는 방법을 설명하는 연결 매개 변수 집합을 가져옵니다. 이러한 연결 매개 변수는 디바이스가 연결된 포트에 대한 직렬 컨트롤러를 식별하고 직렬 컨트롤러가 디바이스와 통신하는 데 필요한 전송 속도 및 흐름 제어 설정과 같은 기타 정보를 포함합니다.

PnP 관리자는 이 주변 장치에 대한 연결 매개 변수를 나타내는 연결 ID를 할당합니다. PnP 관리자는 이 ID와 연결 매개 변수를 리소스 허브라는 시스템 데이터 저장소에 함께 저장합니다. (리소스 허브는 PnP 관리자가 직렬로 연결된 주변 디바이스에 대한 구성 정보를 저장하는 내부 데이터 저장소입니다.) 연결 ID는 이러한 매개 변수를 캡슐화하여 주변 드라이버가 불투명으로 처리할 수 있도록 합니다.

주변 장치 드라이버는 드라이버의 할당된 하드웨어 리소스의 일부로 직렬로 연결된 주변 장치에 대한 연결 ID를 받습니다. 주변 장치 드라이버가 시스템 함수를 호출하여 주변 디바이스에 대한 연결을 열면 드라이버는 시스템 함수가 리소스 허브에서 디바이스의 연결 매개 변수를 검색하는 데 사용하는 연결 ID를 제공합니다.

연결 ID를 사용하여 직렬로 연결된 주변 디바이스에 대한 논리 연결을 여는 UMDF 및 KMDF 드라이버의 코드 예제는 다음 topics 참조하세요.

직렬 포트에 UMDF 주변 장치 드라이버 연결

KMDF 주변 장치 드라이버를 직렬 포트에 연결

직렬 포트에서 주변 디바이스에 대한 연결을 여는 클라이언트는 연결이 닫히기 전까지 포트에 대한 단독 액세스 권한을 가집니다. 다른 클라이언트가 동일한 포트에 대한 두 번째 연결을 열려는 시도가 실패합니다.

직렬 포트를 연 직후 클라이언트는 포트가 알 수 없거나 정의되지 않은 상태라고 가정해야 합니다. 클라이언트는 사용할 준비가 되도록 포트를 구성해야 합니다.

작업을 위해 직렬 포트를 구성하기 위해 클라이언트는 I/O 컨트롤(IOCTL) 요청을 직렬 컨트롤러로 보냅니다. 일반적으로 클라이언트는 컨트롤러에 IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION 요청을 보내 포트를 기본 구성으로 설정합니다. 필요한 경우 클라이언트는 하나 이상의 기본 구성 설정을 재정의하기 위해 추가 직렬 IOCTL을 보낼 수 있습니다. 예를 들어 Windows는 전송 속도, 흐름 제어 매개 변수, 줄 제어 설정 및 읽기 및 쓰기 요청에 대한 제한 시간 값을 변경하도록 직렬 IOCTL을 정의합니다. SerCx2에서 지원하는 직렬 IOCTL 목록은 직렬 I/O 요청 인터페이스를 참조하세요.