다음을 통해 공유


PFND3D11_1DDI_QUERYAUTHENTICATEDCHANNEL 콜백 함수(d3d10umddi.h)

인증된 채널에서 기능 및 상태 정보를 쿼리합니다. WDDM(Windows 디스플레이 드라이버 모델) 1.2 이상 사용자 모드 디스플레이 드라이버에 의해 구현됩니다.

구문

PFND3D11_1DDI_QUERYAUTHENTICATEDCHANNEL Pfnd3d111DdiQueryauthenticatedchannel;

HRESULT Pfnd3d111DdiQueryauthenticatedchannel(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HAUTHCHANNEL hCAuthChannel,
  UINT InputDataSize,
  const VOID *pInputData,
  UINT OutputDataSize,
  VOID *pOutputData
)
{...}

매개 변수

hDevice

디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

hCAuthChannel

CreateAuthenticatedChannel(D3D11_1) 함수를 호출하여 만든 인증된 채널 개체에 대한 핸들입니다.

InputDataSize

pInputData 배열에 있는 데이터의 크기(바이트)입니다.

pInputData

쿼리할 정보를 설명하는 버퍼에 대한 포인터입니다. 이 버퍼의 데이터는 D3D11_1DDI_AUTHENTICATED_QUERY_INPUT 구조체로 형식이 지정됩니다.

OutputDataSize

pOutputData 배열에 있는 데이터의 크기(바이트)입니다.

pOutputData

쿼리된 정보를 포함하는 버퍼에 대한 포인터입니다. 자세한 내용은 주의 섹션을 참조하세요.

반환 값

다음 값 중 하나를 반환합니다.

반환 코드 설명
S_OK 인증된 채널이 성공적으로 쿼리되었습니다.
E_FAIL 디스플레이 미니포트 드라이버가 지정된 명령을 지원하지 않습니다.
E_INVALIDARG 매개 변수의 유효성이 검사되었고 잘못된 것으로 확인되었습니다.
E_OUTOFMEMORY 메모리를 사용하여 작업을 완료할 수 없습니다.

설명

pInputData 매개 변수는 D3D11_1DDI_AUTHENTICATED_QUERY_INPUT 구조를 포함하는 버퍼를 참조합니다. 이 구조체에는 인증된 채널에 대한 드라이버 핸들, 시퀀스 번호 및 수행할 쿼리 유형을 나타내는 GUID가 포함됩니다. D3D11_1(ConfigureAuthenticatedChannel) 함수를 사용하여 시퀀스 번호가 이전에 초기화되지 않은 경우 드라이버는 E_INVALIDARG 반환해야 합니다. 또한 드라이버는 시퀀스 번호가 이전 쿼리 호출의 시퀀스 번호보다 크지 않은 경우 E_INVALIDARG 반환해야 합니다.

pOutputData 매개 변수에서 참조하는 바이트 배열은 D3D11_1DDI_AUTHENTICATED_QUERY_INPUT 구조체의 QueryType 멤버에 의해 지정된 형식입니다. 다음 목록에서는 QueryType 멤버를 기반으로 이 데이터의 형식을 설명합니다.

드라이버는 다음 단계에 따라 pOutputData 매개 변수에서 참조하는 출력 버퍼를 준비합니다.

  1. QueryType 멤버를 기반으로 반환되는 각 구조체는 D3D11_1DDI_AUTHENTICATED_QUERY_OUTPUT 구조체로 시작합니다. 드라이버는 D3D11_1DDI_AUTHENTICATED_QUERY_INPUT 멤버를 D3D11_1DDI_AUTHENTICATED_QUERY_OUTPUT 구조체에 복사해야 합니다.
  2. 드라이버는 ReturnCode 멤버를 QueryAuthenticatedChannel(D3D11_1) 호출에 대해 반환할 동일한 반환 코드로 설정해야 합니다. 이렇게 하면 애플리케이션에 반환 코드에 액세스하는 보안 메커니즘이 제공됩니다.
  3. QueryType 멤버의 값에 따라 드라이버는 pOutputData 버퍼의 D3D11_1DDI_AUTHENTICATED_QUERY_OUTPUT 구조 다음에 해당하는 구조를 초기화해야 합니다.
  4. 드라이버는 OPM(출력 보호 관리자) 쿼리를 처리하는 방식과 동일한 방식으로 pOutputData 버퍼에 서명해야 합니다.

    D3D11_1DDI_AUTHENTICATED_QUERY_OUTPUT 구조에는 데이터의 AES 기반 OMAC(원키 CBC 메시지 인증 코드)가 포함됩니다. 디스플레이 미니포트 드라이버는 데이터를 인증하려면 출력 버퍼의 데이터에 대해 OMAC를 계산해야 합니다. 드라이버는 먼저 omac 멤버를 0으로 설정한 다음 버퍼의 데이터에 대한 OMAC를 계산하여 이 작업을 수행합니다. 그런 다음 드라이버는 omac 멤버를 계산된 OMAC로 설정합니다.

디스플레이 미니포트 드라이버는 다음 조건에서 QueryAuthenticatedChannel(D3D11_1) 호출에 대한 E_INVALIDARG 반환해야 합니다.
  • 시퀀스 번호는 이전 구성 호출에서 지정한 시퀀스 번호보다 크지 않습니다.
  • ConfigureAuthenticatedChannel(D3D11_1) 함수를 호출하여 시퀀스 번호가 아직 초기화되지 않았습니다.
  • OutputDataSize 매개 변수는 D3D11_1DDI_AUTHENTICATED_CONFIGURE_INPUT 지정한 구조체의 크기보다 작습니다. QueryType 멤버입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 데스크톱
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

ConfigureAuthenticatedChannel(D3D11_1)

CreateAuthenticatedChannel(D3D11_1)

D3D11_1DDI_AUTHENTICATED_QUERY_INPUT

D3D11_1DDI_AUTHENTICATED_QUERY_OUTPUT