IDiaDataSource::getStreamRawData
Recupera i byte non elaborati del flusso denominato.
Sintassi
HRESULT getStreamRawData (
LPCOLESTR stream,
ULONGLONG cbOffset,
ULONGLONG cbRead,
ULONGLONG* pcbRead,
BYTE* pbData
);
Parametri
stream
[in] Nome del flusso all'interno delle informazioni di debug.
cbOffset
[in] Offset all'interno del flusso da cui iniziare la lettura dei dati.
cbRead
[in] Numero di byte da recuperare.
pcbRead
[out] Numero di byte effettivamente letti dal flusso.
pbData
[out] Percorso in cui archiviare i dati di lettura. Per l'input devono essere presenti almeno cbRead
byte di dimensioni. Al termine, i byte restituiti *pcbRead
saranno validi.
Valore restituito
Se l'esito è positivo, restituisce S_OK
. Se il flusso denominato non esiste all'interno del PDB, l'API potrebbe non riuscire o restituire una lunghezza pari a 0.
Osservazioni:
I database di programma sono costituiti da più flussi di dati. Alcuni di questi flussi sono denominati. È possibile usare questo metodo per raccogliere informazioni su questi flussi denominati.
Per ottenere le dimensioni del flusso, usare il IDiaDataSourceEx::getStreamSize
metodo .
Esempio
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)) {
...