ISCPSecureQuery::GetDataDemands method (mswmdm.h)

The GetDataDemands method reports which data the secure content provider needs to determine the rights and responsibility for a specified piece of content.

Syntax

HRESULT GetDataDemands(
  [out]     UINT     *pfuFlags,
  [out]     DWORD    *pdwMinRightsData,
  [out]     DWORD    *pdwMinExamineData,
  [out]     DWORD    *pdwMinDecideData,
  [in, out] BYTE [8] abMac
);

Parameters

[out] pfuFlags

Flags describing the data required by the secure content provider to make decisions. This parameter is included in the output message authentication code. At least one of the following flags must be used.

Flag Description
WMDM_SCP_RIGHTS_DATA The secure content provider needs data to determine rights for the content.
WMDM_SCP_EXAMINE_DATA The secure content provider needs data to determine whether it is responsible for the content.
WMDM_SCP_DECIDE_DATA The secure content provider needs data to determine whether to allow the content to be downloaded.
WMDM_SCP_EXAMINE_EXTENSION The secure content provider needs to examine the file name extension to determine whether to allow the content to be downloaded.
WMDM_SCP_PROTECTED_OUTPUT The secure content provider needs protected output.
WMDM_SCP_UNPROTECTED_OUTPUT The secure content provider needs unprotected output.

[out] pdwMinRightsData

Pointer to a DWORD specifying the minimum amount of data needed to determine rights for this content. This parameter is included in the output message authentication code.

[out] pdwMinExamineData

Pointer to a DWORD containing the minimum number of bytes of data that the secure content provider needs to determine whether it is responsible for the content. This parameter is included in the output message authentication code.

[out] pdwMinDecideData

Pointer to a DWORD containing the minimum number of bytes of data that the secure content provider needs to determine whether to allow the content to be downloaded. This parameter is included in the output message authentication code.

[in, out] abMac

Array of eight bytes containing the message authentication code for the parameter data of this method. (WMDM_MAC_LENGTH is defined as 8.)

Return value

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Return code Description
WMDM_E_MAC_CHECK_FAILED
The message authentication code is not valid.
E_INVALIDARG
A parameter is an invalid or NULL pointer.
E_FAIL
An unspecified error occurred.

Remarks

This method must be called before any of the other methods of ISCPSecureQuery are called.

This method is called after any certificate exchanges have been successfully finished. The secure content provider fills in the parameters with the flags and data that describe its requirements for making decisions about the content.

If the secure content provider sets the WMDM_SCP_RIGHTS_DATA flag, then Windows Media Device Manager sends the amount of data specified in pdwMinRightsData by calling ISCPSecureQuery::GetRights.

If the secure content provider sets the WMDM_SCP_EXAMINE_DATA flag, then Windows Media Device Manager sends the amount of data specified in pdwMinExamineData by calling ISCPSecureQuery::ExamineData.

If the secure content provider sets the WMDM_SCP_DECIDE_DATA flag, then Windows Media Device Manager sends the amount of data specified in pdwMinDecideData by calling ISCPSecureQuery::MakeDecision.

If no examine flags are set, Windows Media Device Manager does not make any more calls. If no decide flags are set, Windows Media Device Manager still calls ISCPSecureQuery::ExamineData.

If this method does not return S_OK, then Windows Media Device Manager does not make any further calls to this secure content provider.

Requirements

Requirement Value
Target Platform Windows
Header mswmdm.h
Library Mssachlp.lib

See also

ISCPSecureQuery Interface