다음을 통해 공유


IoGetDeviceInterfaceAlias 함수(wdm.h)

별칭이 있는 경우 IoGetDeviceInterfaceAlias 루틴은 지정된 디바이스 인터페이스 instance 별칭 디바이스 인터페이스를 반환합니다.

구문

NTSTATUS IoGetDeviceInterfaceAlias(
  [in]  PUNICODE_STRING SymbolicLinkName,
  [in]  const GUID      *AliasInterfaceClassGuid,
  [out] PUNICODE_STRING AliasSymbolicLinkName
);

매개 변수

[in] SymbolicLinkName

별칭을 검색할 디바이스 인터페이스 instance 이름에 대한 포인터입니다. 호출자는 일반적으로 IoGetDeviceInterfaces 호출 또는 PnP 알림 구조에서 이 문자열을 수신했습니다.

[in] AliasInterfaceClassGuid

검색할 별칭의 인터페이스 클래스를 지정하는 GUID에 대한 포인터입니다.

[out] AliasSymbolicLinkName

NULL 유니코드 문자열에 대한 포인터를 지정합니다. 성공적으로 반환되면 AliasSymbolicLinkName입니다. 버퍼 는 별칭의 이름을 포함하는 문자열을 가리킵니다. 호출자는 더 이상 필요하지 않은 경우 RtlFreeUnicodeString 을 사용하여 유니코드 문자열을 해제해야 합니다.

반환 값

IoGetDeviceInterfaceAlias는 호출이 성공하면 STATUS_SUCCESS 반환합니다. 가능한 오류 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_OBJECT_NAME_NOT_FOUND
지정된 인터페이스 클래스의 별칭이 없음을 나타내는 것일 수 있습니다.
STATUS_OBJECT_PATH_NOT_FOUND
지정된 인터페이스 클래스의 별칭이 없음을 나타내는 것일 수 있습니다.
STATUS_INVALID_HANDLE
잘못된 SymbolicLinkName 또는 잘못된 AliasClassGuid를 나타내는 것일 수 있습니다.

설명

디바이스 인터페이스는 동일한 기본 디바이스에서 노출되고 인터페이스 참조 문자열이 동일하지만 인터페이스 클래스가 다른 경우 별칭으로 간주됩니다.

SymbolicLinkName 매개 변수는 특정 참조 문자열을 사용하여 특정 인터페이스 클래스에 속하는 특정 디바이스에 대한 instance 디바이스 인터페이스를 지정합니다. IoGetDeviceInterfaceAlias는 동일한 디바이스 및 참조 문자열에 대해 instance 다른 디바이스 인터페이스를 반환하지만 다른 인터페이스 클래스가 있는 경우 반환합니다.

예를 들어 내결함성 볼륨의 함수 드라이버는 두 개의 디바이스 인터페이스( 내결함성 볼륨 인터페이스 클래스 중 하나 및 볼륨 인터페이스 클래스 중 하나)를 등록하고 설정할 수 있습니다. 다른 드라이버는 인터페이스 중 하나에 대한 기호 링크를 사용하여 IoGetDeviceInterfaceAlias 를 호출하고 인터페이스 클래스를 지정하여 다른 인터페이스가 존재하는지 여부를 요청할 수 있습니다.

NULL 참조 문자열이 있는 두 디바이스 인터페이스는 동일한 기본 디바이스에서 노출되고 인터페이스 클래스 GUID가 다른 경우 별칭입니다.

IoGetDeviceInterfaceAlias의 호출자는 IRQL = PASSIVE_LEVEL 시스템 스레드의 컨텍스트에서 실행되어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(설명 섹션 참조)
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

추가 정보

IoRegisterDeviceInterface

RtlFreeUnicodeString