ISCPSecureExchange3::TransferContainerDataOnClearChannel メソッド (mswmdm.h)

TransferContainerDataOnClearChannel メソッドは、クリア チャネルを介してコンテナー ファイル データをコンテンツ プロバイダーに転送します。 コンテンツ プロバイダーは、コンテナーを内部的に分割し、コンテナーから抽出されたコンテンツのどの部分が使用可能かを報告します。

このメソッドは ISCPSecureExchange::TransferContainerData と同じですが、このメソッドに渡されるパラメーターは暗号化されません。 したがって、この方法の方が効率的です。

構文

HRESULT TransferContainerDataOnClearChannel(
  IMDSPDevice    *pDevice,
  BYTE           *pData,
  DWORD          dwSize,
  IWMDMProgress3 *pProgressCallback,
  UINT           *pfuReadyFlags
);

パラメーター

pDevice

デバイス オブジェクトへのポインター。

pData

コンテナー ファイルから転送されている現在のデータを保持しているバッファーへのポインター。

dwSize

バッファー内のバイト数を格納します。

pProgressCallback

コンテンツ プロバイダーが実行する必要があるステップの進行状況を報告できる進行状況コールバック。このステップは、IWMDMProgress3 メソッドの EventId パラメーターによって識別されます。

pfuReadyFlags

コンテナー ファイルのどの部分を読み取る準備ができているかを示すフラグ。 このパラメーターは、出力メッセージ認証コードに含まれています。 次のフラグは、準備ができていることを示しています。

説明
WMDM_SCP_TRANSFER_OBJECTDATA
オブジェクトのデータは、 GetObjectDataOnClearChannel メソッドを呼び出すことによって使用できます。
WMDM_SCP_NO_MORE_CHANGES
コンテンツ プロバイダーは、転送されるファイルのそれ以上の処理や変更は必要ないと判断しました。 Windows Media デバイス マネージャーは、ファイルの残りの部分をデバイスに直接転送できます。

戻り値

メソッドが成功した場合は、S_OK を返します。 メソッドが失敗した場合は、 HRESULT エラー コードが返されます。

リターン コード 説明
WMDM_E_NOT_CERTIFIED
呼び出し元には、このインターフェイスの使用が許可されていません。
WMDM_E_NORIGHTS
呼び出し元には、要求された操作を実行するために必要な権限がありません。
WMDM_E_MAC_CHECK_FAILED
メッセージ認証コードが無効です。
S_FALSE
メソッドが失敗しました。 コンテンツ プロバイダーとの対話を終了します。
E_INVALIDARG
パラメーターが無効であるか、 NULL ポインターです。
E_FAIL
未指定のエラーが発生しました。

解説

Windows Media デバイス マネージャーは、コンテナー ファイルからコンテンツ プロバイダーにデータを転送して、このメソッドを繰り返し呼び出します。 Windows Media デバイス マネージャーは、最終的に dwSize を 0 に設定してこのメソッドを呼び出して、転送するデータがなくなったことを示します。 コンテンツ プロバイダーは、データを収集し、そこからさまざまなオブジェクトを抽出すると、呼び出しのたびに使用できるオブジェクト (存在する場合) を Windows Media デバイス マネージャーに報告します。 使用可能なオブジェクトがない場合、コンテンツ プロバイダーは pfuReadyFlags パラメーターを 0 に設定してS_OKを返します。 コンテンツ プロバイダーが、転送されるファイルのそれ以上の処理や変更を必要としていないと判断すると、フラグ WMDM_SCP_NO_MORE_CHANGESが返されます。 Windows Media デバイス マネージャーは、ファイルの残りの部分をデバイスに直接転送できます。

オブジェクト データは、 GetObjectDataOnClearChannel メソッドを呼び出すことによってコンテンツ プロバイダーから転送されます。 Windows Media デバイス マネージャーは、3 番目のパラメーター pdwsize で 0 が返されるまで、GetObjectDataOnClearChannel を繰り返し呼び出します。

ISCPSecureExchange::TransferComplete (またはセッションがアクティブな場合は TransferCompleteForDevice) メソッドは、データ転送の終了を通知するために Windows Media デバイス マネージャーによって呼び出されます。

Windows Media デバイス マネージャーは、pProgressCallback パラメーターで、アプリケーション提供の進行状況コールバックをコンテンツ プロバイダーに渡します。 コンテンツ プロバイダーは、このパラメーターを使用して、実行する必要があるステップの進行状況通知を提供できます。ステップ自体は、IWMDMProgress3 のメソッドの最初のパラメーターである EventId によって識別されます。 特定のコンテンツ プロバイダーの実装では、使用するアプリケーションの EventId 値が定義されます。

このメソッドは ISCPSecureExchange::TransferContainerData と同じですが、このメソッドに渡されるパラメーターは暗号化されません。 したがって、この方法の方が効率的です。

必要条件

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

関連項目

ISCPSecureExchange3 インターフェイス

ISCPSecureExchange::TransferContainerData