Condividi tramite


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)) {
      ...

Vedi anche