다음을 통해 공유


IWMDMDevice::GetSerialNumber 메서드(mswmdm.h)

GetSerialNumber 메서드는 디바이스를 고유하게 식별하는 일련 번호를 검색합니다.

구문

HRESULT GetSerialNumber(
  [out]     PWMDMID  pSerialNumber,
  [in, out] BYTE [8] abMac
);

매개 변수

[out] pSerialNumber

일련 번호 정보를 지정하는 WMDMID 구조체에 대한 포인터입니다. WMDID 구조체는 애플리케이션에 의해 할당되고 해제됩니다.

[in, out] abMac

이 메서드의 매개 변수 데이터에 대한 메시지 인증 코드를 지정하는 바이트 배열입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. Windows Media 장치 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스를 반환할 수 있습니다.

  • 표준 COM 오류 코드
  • HRESULT 값으로 변환된 Windows 오류 코드
  • Windows Media 장치 관리자 오류 코드
가능한 오류 코드의 광범위한 목록은 오류 코드를 참조하세요.

설명

일부 디바이스는 일련 번호를 지원하지 않습니다. 디바이스에서 일련 번호를 지원하는지 여부를 확인하려면 호출자는 이 함수를 호출할 때 항상 반환 코드를 검사 합니다. 미디어 디바이스가 일련 번호를 지원하는 경우 미디어 디바이스의 일련 번호는 해당 디바이스에 대해 고유하게 유지됩니다.

이 메서드를 호출한 후 애플리케이션은 abMAC 매개 변수를 사용하여 전송 중에 직렬이 수정되지 않은 것을 확인할 수 있습니다. 이에 대한 예제 코드는 보안 인증 채널 사용을 참조하세요.

예제

다음 C++ 코드는 디바이스 일련 번호를 검색하고 MAC을 확인합니다.


//
// Get and verify the serial number.
//
WMDMID serialNumber;
BYTE receivedMAC[WMDM_MAC_LENGTH];
hr = pIWMDMDevice->GetSerialNumber(&serialNumber, receivedMAC);

// Check the MAC to guarantee the serial number has not been tampered with.
if (hr == S_OK)
{
    // Initialize a MAC handle, 
    // next add all parameters to the MAC,
    // and finally retrieve the calculated MAC value.
    HMAC hMAC;
    BYTE calculatedMAC[WMDM_MAC_LENGTH];
    hr = m_pSAC->MACInit(&hMAC);
    hr = m_pSAC->MACUpdate(hMAC, (BYTE*)(&serialNumber), sizeof(serialNumber));
    hr = m_pSAC->MACFinal(hMAC, (BYTE*)calculatedMAC);
    if (memcmp(calculatedMAC, receivedMAC, sizeof(calculatedMAC)) == 0)
    {
        // MAC is authentic. Print the serial number.
        CHAR* serialNumberBuffer = new CHAR[serialNumber.SerialNumberLength + 1];
        ZeroMemory(serialNumberBuffer, (serialNumber.SerialNumberLength + 1) * sizeof(CHAR));
        memcpy(serialNumberBuffer, serialNumber.pID, serialNumber.SerialNumberLength * sizeof(CHAR));
        // TODO: Display the serial number.
        delete serialNumberBuffer;
    }
    else
        // TODO: Display a message indicating that the serial number MAC does not match in EnumDevices
}

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 mswmdm.h
라이브러리 Mssachlp.lib

추가 정보

IWMDMDevice 인터페이스

보안 인증 채널 사용