Share via


Instance ID

instance ID는 디바이스의 열거자(버스 드라이버)가 보고하는 문자열이며 컴퓨터에서 동일한 유형의 다른 디바이스와 디바이스를 구분합니다. instance ID에는 일련 번호 정보(기본 버스에서 지원하는 경우) 또는 일종의 위치 정보가 포함됩니다. 문자열은 IRP_MN_QUERY_ID 요청에 대한 응답에서 허용되지 않는 "\" 문자 또는 다른 문자를 포함할 수 없습니다. 그렇지 않으면 문자열의 제네릭 형식이 버스에 따라 다릅니다. NULL 종결자를 제외한 instance ID의 문자 수는 보다 MAX_DEVICE_ID_LEN작아야 합니다. 또한 instance ID는 디바이스 ID와 함께 디바이스 instance ID 생성에 대한 또 다른 입력이며, 디바이스 instance ID의 최대 길이는 입니다MAX_DEVICE_ID_LEN. 이렇게 하려면 instance ID의 길이가 디바이스 instance ID보다 MAX_DEVICE_ID_LEN 충분히 작아야 길이가 보다 MAX_DEVICE_ID_LEN작은 문자열로 만들 수 있습니다.

디바이스에 대한 DEVICE_CAPABILITIES 구조의 UniqueID 멤버는 다음과 같이 버스 제공 instance ID가 시스템 전체에서 고유한지 나타냅니다.

  • UniqueIDFALSE인 경우 디바이스에 대한 버스 제공 instance ID는 디바이스의 버스에만 고유합니다. PnP(플러그 앤 플레이) 관리자는 버스 제공 instance ID를 수정하고 해당 디바이스 ID와 결합하여 시스템에서 고유한 디바이스 instance ID를 만듭니다.

  • UniqueIDTRUE인 경우 버스 제공 디바이스 ID 및 instance ID에서 형성된 디바이스 instance ID는 시스템의 디바이스를 고유하게 식별합니다.

instance ID는 시스템 다시 시작에서 지속됩니다.

PnP 관리자는 Parameters.QueryId.IdType 필드가 BusQueryInstanceID로 설정된 IRP_MN_QUERY_ID 요청을 사용하여 디바이스의 버스 드라이버에서 이 문자열을 쿼리합니다.