인스턴스 ID는 디바이스의 열거자(해당 버스 드라이버)에서 보고하는 문자열이며 컴퓨터에서 동일한 유형의 다른 디바이스와 디바이스를 구분합니다.
인스턴스 ID에는 기본 버스에서 지원하는 경우 일련 번호 정보 또는 일종의 위치 정보가 포함됩니다. 문자열은 "\" 문자 또는 IRP_MN_QUERY_ID 요청에 대한 응답에서 허용되지 않는 다른 문자를 포함할 수 없습니다. 그렇지 않으면 문자열의 제네릭 형식이 버스별 형식입니다. NULL 종결자를 제외한 인스턴스 ID의 문자 수는 .보다 MAX_DEVICE_ID_LEN작아야 합니다. 또한 인스턴스 ID는 디바이스 ID와 함께 디바이스 인스턴스 ID를 생성하는 데 사용되는 또 다른 입력이며, 디바이스 인스턴스 ID의 최대 길이는 MAX_DEVICE_ID_LEN입니다. 이렇게 하려면 인스턴스 ID 의 길이가 디바이스 인스턴스 ID보다 MAX_DEVICE_ID_LEN 충분히 작아야 하며 길이가 1보다 MAX_DEVICE_ID_LEN작은 문자열로 만들 수 있습니다.
디바이스에 대한 DEVICE_CAPABILITIES 구조의 UniqueID 멤버는 다음과 같이 버스 제공 인스턴스 ID가 시스템 전체에서 고유한지 나타냅니다.
UniqueID가 FALSE인 경우 디바이스에 대한 버스 제공 인스턴스 ID는 디바이스의 버스에만 고유합니다. PnP(플러그 앤 플레이) 관리자는 버스 제공 인스턴스 ID를 수정하고 해당 디바이스 ID와 결합하여 시스템에서 고유한 디바이스 인스턴스 ID를 만듭니다.
UniqueID가 TRUE이면 버스 제공 디바이스 ID 및 인스턴스 ID에서 형성된 디바이스 인스턴스 ID는 시스템의 디바이스를 고유하게 식별합니다.
인스턴스 ID는 시스템 다시 시작에서 지속됩니다.
PnP 관리자는 Parameters.QueryId.IdType 필드가 BusQueryInstanceID로 설정된 IRP_MN_QUERY_ID 요청을 사용하여 디바이스의 버스 드라이버에서 이 문자열을 쿼리합니다.