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 |
---|---|
|
Os dados do objeto estão disponíveis chamando o método GetObjectDataOnClearChannel . |
|
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 |
---|---|
|
O chamador não está autorizado a usar essa interface. |
|
O chamador não tem os direitos necessários para executar a operação solicitada. |
|
O código de autenticação de mensagem não é válido. |
|
O método falhou. Encerre a interação com o provedor de conteúdo. |
|
Um parâmetro é inválido ou é um ponteiro NULL . |
|
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 |