Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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)) {
...