次の方法で共有


IWMDMStorageGlobals::GetSerialNumber メソッド (mswmdm.h)

GetSerialNumber メソッドは、ストレージ メディアを一意に識別するシリアル番号を取得します。

構文

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

パラメーター

[out] pSerialNum

シリアル番号情報を指定する WMDMID 構造体へのポインター。

[in, out] abMac

このメソッドのパラメーター データのメッセージ認証コードを指定するバイト配列。 このメモリは、呼び出し元によって割り当てられ、解放されます。

戻り値

このメソッドは HRESULT を返します。 Windows Media デバイス マネージャーのすべてのインターフェイス メソッドは、次のいずれかのエラー コード クラスを返すことができます。

  • 標準 COM エラー コード
  • HRESULT 値に変換された Windows エラー コード
  • Windows Media デバイス マネージャーエラー コード
考えられるエラー コードの詳細な一覧については、「 エラー コード」を参照してください。

注釈

すべてのストレージ メディアがシリアル番号をサポートしているわけではありませんが、Microsoft デジタル著作権管理をサポートするにはシリアル番号が必要です。 ストレージ メディアが一意のシリアル番号を報告できない場合、Microsoft デジタル著作権管理によって保護されたコンテンツをこのストレージ メディアに転送することはできません。 戻りコードを確認して、ストレージ メディアがこのサポートを提供するかどうかを確認する必要があります。

次の C++ コードは、ルート ストレージ オブジェクトのシリアル番号を取得し、MAC を検証します。


    hr = m_pStorageGlobals->GetSerialNumber(&m_SerialNumber, (BYTE*)abMAC);
    if (SUCCEEDED(hr))
    {
        // Verify the MAC using the CSecureChannelClient member.
        m_pSAC->MACInit(&hMAC);
        m_pSAC->MACUpdate(hMAC, (BYTE*)(&m_SerialNumber), sizeof(m_SerialNumber));
        m_pSAC->MACFinal(hMAC, (BYTE*)abMACVerify);
        if (memcmp(abMACVerify, abMAC, sizeof(abMAC)) != 0)
        {
            hr = E_FAIL;
        }
    }

要件

要件
対象プラットフォーム Windows
ヘッダー mswmdm.h
Library Mssachlp.lib

こちらもご覧ください

IWMDMStorageGlobals インターフェイス

セキュリティで保護された認証済みチャネルの使用