COM 포트 데이터베이스
시스템에서 제공하는 COM 포트 데이터베이스는 시스템에 설치된 COM 포트별 COM 포트 번호 사용을 중재합니다. Microsoft Windows는 COM 포트를 쉽게 설치할 수 있도록 이 구성 요소를 제공하며, 특히 각 포트 번호가 최대 하나의 포트에 할당되도록 합니다. 구성 요소는 데이터베이스와 설치 소프트웨어가 데이터베이스에 액세스하기 위해 호출하는 함수를 포함하는 라이브러리로 구성됩니다. COM 포트에 대한 모든 시스템 제공 설치 관리자는 COM 포트 데이터베이스를 사용하여 COM 포트 번호를 가져옵니다. 플러그 앤 플레이 요구 사항은 아니지만 공급업체에서 제공하는 모든 설치 관리자는 COM 포트 데이터베이스를 사용하여 COM 포트 번호를 가져와야 합니다.
COM 포트 데이터베이스를 지원하는 루틴에 대한 자세한 내용은 COMPort 데이터베이스 지원 루틴을 참조하세요.
또한 다음 루틴을 참조하세요.
SERIALDisplayAdvancedSettings- COM 포트에 대한 고급 속성 페이지를 설치하기 위한 시스템 제공 루틴입니다.
serialDisplayAdvancedSettings에서 호출되는 선택적 공급업체 제공 대화 상자를 제공하는 PPORT_ADVANCED_DIALOG 형식 루틴
설치 관리자에서 이러한 루틴을 호출하려면 WDK(Windows 드라이버 키트)와 함께 제공되는 msports.lib에 설치 관리자를 연결합니다.
COM 포트 데이터베이스의 구조
COM 포트 데이터베이스는 요소 배열로 구성되며, 각 요소는 COM 포트 번호가 사용 중인지 여부를 나타냅니다. 첫 번째 배열 요소는 COM1에 해당하고, 두 번째는 COM2에 해당합니다. 그러나 데이터베이스에는 지정된 포트 번호가 할당된 디바이스에 대한 정보가 포함되어 있지 않습니다. 데이터베이스의 크기는 데이터베이스가 현재 중재하는 포트 번호 수와 같습니다. 데이터베이스가 중재하는 최소 포트 번호 수는 COMDB_MIN_PORTS_ARBITRATED, 중재하는 최대 개수는 COMDB_MAX_PORTS_ARBITRATED. ComDBResizeDatabase 루틴을 사용하여 데이터베이스 크기를 늘릴 수 있습니다.
COM 포트 데이터베이스 열기 및 닫기
COM 포트 데이터베이스를 사용하기 전에 클라이언트는 ComDBOpen 루틴을 호출하여 데이터베이스에 대한 핸들을 가져와야 합니다. 데이터베이스는 연속 데이터베이스 액세스 중에 상호 제외로 보호됩니다. 그러나 데이터베이스를 단독 용도로 열 수 없으며 해당 상태는 데이터베이스에 대한 고유한 액세스 간에 동적으로 변경될 수 있습니다.
COM 포트 번호의 현재 사용량 결정
COM 포트 데이터베이스를 연 후 클라이언트는 ComDBGetCurrentPortUsage 루틴을 호출하여 이미 사용 중인 COM 포트 번호를 확인할 수 있습니다.
클라이언트는 일반적으로 다음 작업을 수행합니다.
루틴을 호출하여 현재 데이터베이스에서 중재되는 포트 번호 수를 확인합니다.
호출자가 할당한 비트 배열 또는 바이트 배열에서 포트 번호 사용에 대한 정보를 반환하기 위해 루틴을 두 번째로 호출합니다. 여기서 각 비트 또는 바이트는 해당 포트 번호가 사용 중인지 여부를 지정합니다.
데이터베이스의 모든 포트 번호가 사용 중이거나 현재 사용할 수 있는 적절한 포트 번호가 없는 경우 클라이언트는 데이터베이스 크기를 조정할 수 있습니다. 자세한 내용은 COM 포트 데이터베이스 크기 조정을 참조하세요.
COM 포트 번호 가져오기 및 해제
클라이언트는 다음 루틴 중 하나를 호출하여 COM 포트 번호를 가져올 수 있습니다.
사용 가능한 포트 번호가 가장 낮다고 주장하는 ComDBClaimNextFreePort입니다.
특정 포트 번호를 클레임하려고 시도하는 ComDBClaimPort입니다.
COM 포트 데이터베이스에서 COM 포트 번호를 클레임하면 포트 번호가 "사용 중"으로 기록됩니다.
클라이언트는 ComDBReleasePort 루틴을 호출하여 포트 번호를 해제합니다.
COM 포트 데이터베이스 크기 조정
클라이언트는 ComDBResizeDatabase 루틴을 호출하여 COM 포트 데이터베이스의 크기를 조정할 수 있습니다. 클라이언트는 1024의 정수 배수로만 데이터베이스 크기를 늘릴 수 있습니다. 데이터베이스의 최대 크기는 COMDB_MAX_PORTS_ARBITRATED.