Bagikan melalui


Metode IWMDMStorage::GetRights (mswmdm.h)

Metode GetRights mengambil informasi hak untuk penyimpanan berlisensi.

Sintaks

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

Parameter

[out] ppRights

Penunjuk ke array struktur WMDMRIGHTS yang berisi hak penyimpanan. Parameter ini disertakan dalam kode autentikasi pesan. Windows Media Device Manager mengalokasikan memori ini, dan aplikasi harus merilisnya dengan CoTaskMemFree.

[out] pnRightsCount

Arahkan ke jumlah struktur WMDMRIGHTS dalam array ppRights . Parameter ini disertakan dalam kode autentikasi pesan.

[in, out] abMac

Array byte yang berisi kode autentikasi pesan (MAC) untuk data parameter metode ini.

Nilai kembali

Metode mengembalikan HRESULT. Semua metode antarmuka di Windows Media Device Manager dapat mengembalikan salah satu kelas kode kesalahan berikut:

  • Kode kesalahan COM standar
  • Kode kesalahan Windows dikonversi ke nilai HRESULT
  • Kode kesalahan Pengelola Perangkat Windows Media
Untuk daftar ekstensif kemungkinan kode kesalahan, lihat Kode Kesalahan.

Keterangan

Hak objek menjelaskan izin penggunaan untuk konten media digital. Misalnya, struktur WMDMRIGHTS dapat berisi informasi tentang berapa kali file dapat dimainkan dan siapa yang dapat memainkannya. Metode ini akan gagal jika ini bukan file berlisensi.

Array ppRights dialokasikan oleh metode ini, dan harus dibebaskan oleh aplikasi menggunakan CoTaskMemFree, fungsi Win32 standar.

Untuk menerima peristiwa kemajuan untuk panggilan ini, gunakan IWMDMStorage4::GetRightsWithProgress.

Setelah memanggil metode ini, aplikasi dapat menghitung nilai parameter kode autentikasi pesan (MAC) dan membandingkannya dengan nilai MAC output untuk memastikan bahwa parameter belum dirusak. Contoh kode berikut menunjukkan salah satu cara untuk melakukan ini.

Contoh


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;
    }
}


Persyaratan

Persyaratan Nilai
Target Platform Windows
Header mswmdm.h
Pustaka Mssachlp.lib

Lihat juga

Antarmuka IWMDMStorage

Menggunakan Saluran Terautentikasi Aman

WMDMRIGHTS