Compartilhar via


Método ISCPSecureExchange3::TransferContainerDataOnClearChannel (mswmdm.h)

O método TransferContainerDataOnClearChannel transfere dados de arquivo de contêiner para o provedor de conteúdo por meio do canal claro. O provedor de conteúdo divide o contêiner internamente e relata quais partes do conteúdo estão disponíveis à medida que são extraídas do contêiner.

Esse método é idêntico a ISCPSecureExchange::TransferContainerData , exceto que os parâmetros passados para esse método não são criptografados. Consequentemente, esse método é mais eficiente.

Sintaxe

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

Parâmetros

pDevice

Ponteiro para um objeto de dispositivo.

pData

Ponteiro para um buffer que contém os dados atuais que estão sendo transferidos do arquivo de contêiner.

dwSize

Contém o número de bytes no buffer.

pProgressCallback

Retorno de chamada de progresso no qual o provedor de conteúdo pode relatar o progresso de todas as etapas que talvez precise executar. A etapa será identificada pelo parâmetro EventId dos métodos IWMDMProgress3 .

pfuReadyFlags

Sinalizador indicando quais partes do arquivo de contêiner estão prontas para leitura. Esse parâmetro está incluído no código de autenticação de mensagem de saída. Os sinalizadores a seguir indicam o que está pronto.

Valor Significado
WMDM_SCP_TRANSFER_OBJECTDATA
Os dados do objeto estão disponíveis chamando o método GetObjectDataOnClearChannel .
WMDM_SCP_NO_MORE_CHANGES
O provedor de conteúdo determinou que não requer processamento adicional e/ou modificação do arquivo que está sendo transferido. Os Gerenciador de Dispositivos do Windows Media podem transferir diretamente o restante do arquivo para o dispositivo.

Valor retornado

Se o método for bem-sucedido, retornará S_OK. Se o método falhar, ele retornará um código de erro HRESULT .

Código de retorno Descrição
WMDM_E_NOT_CERTIFIED
O chamador não está autorizado a usar essa interface.
WMDM_E_NORIGHTS
O chamador não tem os direitos necessários para executar a operação solicitada.
WMDM_E_MAC_CHECK_FAILED
O código de autenticação de mensagem não é válido.
S_FALSE
O método falhou. Encerre a interação com o provedor de conteúdo.
E_INVALIDARG
Um parâmetro é inválido ou é um ponteiro NULL .
E_FAIL
Ocorreu um erro não especificado.

Comentários

O Windows Media Gerenciador de Dispositivos chama esse método repetidamente, transferindo dados do arquivo de contêiner para o provedor de conteúdo. O Windows Media Gerenciador de Dispositivos eventualmente chama esse método com dwSize definido como zero para indicar que ele não tem mais dados a serem transferidos. Como o provedor de conteúdo coleta os dados e extrai os vários objetos dele, ele relata de volta ao Windows Media Gerenciador de Dispositivos quais objetos, se houver, estão disponíveis após cada chamada. Se nenhum objeto estiver disponível, o provedor de conteúdo retornará S_OK com o parâmetro pfuReadyFlags definido como zero. Quando o provedor de conteúdo tiver determinado que não requer processamento adicional e/ou modificação do arquivo que está sendo transferido, o sinalizador WMDM_SCP_NO_MORE_CHANGES é retornado. Os Gerenciador de Dispositivos do Windows Media podem transferir diretamente o restante do arquivo para o dispositivo.

Os dados do objeto são transferidos do provedor de conteúdo chamando o método GetObjectDataOnClearChannel . O Windows Media Gerenciador de Dispositivos chama GetObjectDataOnClearChannel repetidamente até que ele retorne zero no terceiro parâmetro, pdwsize.

O método ISCPSecureExchange::TransferComplete (ou TransferCompleteForDevice se uma sessão estiver ativa) é chamado pelo Windows Media Gerenciador de Dispositivos para sinalizar o fim de uma transferência de dados.

O Windows Media Gerenciador de Dispositivos passa o retorno de chamada de progresso fornecido pelo aplicativo para o provedor de conteúdo no parâmetro pProgressCallback. O provedor de conteúdo pode usar esse parâmetro para fornecer notificação de progresso para todas as etapas necessárias. A etapa em si é identificada por EventId, que é o primeiro parâmetro dos métodos de IWMDMProgress3. Uma implementação específica do provedor de conteúdo definirá valores EventId para os aplicativos usarem.

Esse método é idêntico a ISCPSecureExchange::TransferContainerData , exceto que os parâmetros passados para esse método não são criptografados. Consequentemente, esse método é mais eficiente.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho mswmdm.h
Biblioteca Mssachlp.lib

Confira também

ISCPSecureExchange3 Interface

ISCPSecureExchange::TransferContainerData