次の方法で共有


IWMDMStorage::GetRights メソッド (mswmdm.h)

GetRights メソッドは、ライセンスされたストレージの権限情報を取得します。

構文

HRESULT GetRights(
  [out]     PWMDMRIGHTS *ppRights,
  [out]     UINT        *pnRightsCount,
  [in, out] BYTE [8]    abMac
);

パラメーター

[out] ppRights

ストレージ権限を含む WMDMRIGHTS 構造体の配列へのポインター。 このパラメーターは、メッセージ認証コードに含まれています。 Windows Media デバイス マネージャーはこのメモリを割り当てます。アプリケーションは CoTaskMemFree で解放する必要があります。

[out] pnRightsCount

ppRights 配列内の WMDMRIGHTS 構造体の数へのポインター。 このパラメーターは、メッセージ認証コードに含まれています。

[in, out] abMac

このメソッドのパラメーター データのメッセージ認証コード (MAC) を含むバイト配列。

戻り値

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

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

注釈

オブジェクト権限は、デジタル メディア コンテンツの使用アクセス許可を表します。 たとえば、 WMDMRIGHTS 構造体には、ファイルを再生できる回数と再生できるユーザーに関する情報を含めることができます。 これがライセンスファイルでない場合、この方法は失敗します。

ppRights 配列はこのメソッドによって割り当てられ、標準の Win32 関数である CoTaskMemFree を使用してアプリケーションによって解放される必要があります。

この呼び出しの進行状況イベントを受信するには、 IWMDMStorage4::GetRightsWithProgress を使用します

このメソッドを呼び出した後、アプリケーションはパラメーターのメッセージ認証コード (MAC) 値を計算し、それらを出力 MAC 値と比較して、パラメーターが改ざんされていないことを確認できます。 次のコード例は、これを行う 1 つの方法を示しています。


CSecureChannelClient  *pSCClient;
IWMDMStorage  *pStorgae;

HMAC  hMAC;
BYTE  abMAC[WMDM_MAC_LENGTH];
BYTE  abMACVerify[WMDM_MAC_LENGTH];

hr = pStorage->GetRights(&pRights, &nRightsCount, abMAC);
if (SUCCEEDED(hr))
{
    //
    // First verify the integrity of the retrieved rights.
    //
    pSCClient->MACInit(&hMAC);
    pSCClient->MACUpdate(hMAC, (BYTE*)(pRights), 
                    sizeof(WMDMRIGHTS) * nRightsCount);
    pSCClient->MACUpdate(hMAC, (BYTE*)(&nRightsCount), 
                                 sizeof(nRightsCount));
    pSCClient->MACFinal(hMAC, (BYTE*)abMACVerify);
    if (memcmp(abMACVerify, abMAC, sizeof(abMAC)) != 0)
    {
        hr = WMDM_E_MAC_CHECK_FAILED;
    }
}


要件

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

こちらもご覧ください

IWMDMStorage インターフェイス

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

WMDMRIGHTS