Compartilhar via


IDiaDataSource::getStreamRawData

Recupera os bytes brutos do fluxo nomeado.

Sintaxe

HRESULT getStreamRawData (
   LPCOLESTR  stream,
   ULONGLONG  cbOffset,
   ULONGLONG  cbRead,
   ULONGLONG* pcbRead,
   BYTE*      pbData
);

Parâmetros

stream

[em] O nome do fluxo nas informações de depuração.

cbOffset

[em] O deslocamento dentro do fluxo para começar a ler os dados.

cbRead

[em] O número de bytes a serem recuperados.

pcbRead

[fora] O número de bytes realmente lidos do fluxo.

pbData

[fora] O local para armazenar os dados lidos. Na entrada deve ter pelo menos cbRead bytes de tamanho. Após o retorno *pcbRead , os bytes serão válidos.

Valor de retorno

Se for bem-sucedido, retornará S_OK. Se o fluxo nomeado não existir no PDB, a API poderá falhar ou poderá retornar um comprimento de 0.

Comentários

Os bancos de dados do programa são compostos de vários fluxos de dados. Alguns desses riachos são nomeados. Você pode usar esse método para coletar informações sobre esses fluxos nomeados.

Para obter o tamanho do fluxo, use o IDiaDataSourceEx::getStreamSize método.

Exemplo

ULONGLONG countBytes = 0;
LPCOLESTR stream = L"/names";
HRESULT hr = pSource->getStreamSize( stream, &countBytes );
if (SUCCEEDED(hr)) {
  for (ULONGLONG cbOffset = 0, cbRead = 0; cbOffset < countBytes; cbOffset += cbRead) {
    BYTE buffer[100];
    cbRead = 0;
    hr = pSource->getStreamRawBytes( stream, cbOffset, std::min(countBytes - cbOffset, sizeof(buffer)), &cbRead, buffer);
    if (SUCCEEDED(hr)) {
      ...

Confira também