Compartir a través de


IDiaDataSource::getStreamRawData

Recupera los bytes sin procesar de la secuencia con nombre.

Sintaxis

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

Parámetros

stream

[in] Nombre de la secuencia dentro de la información de depuración.

cbOffset

[in] Desplazamiento dentro de la secuencia desde el que empezar a leer los datos.

cbRead

[in] Número de bytes que se van a recuperar.

pcbRead

[out] Número de bytes leídos realmente de la secuencia.

pbData

[out] Ubicación para almacenar los datos de lectura. En la entrada debe tener al menos cbRead bytes de tamaño. Después de que los bytes devueltos se realicen *pcbRead correctamente, serán válidos.

Valor devuelto

Si la operación se realiza correctamente, devuelve S_OK. Si la secuencia con nombre no existe en la PDB, es posible que se produzca un error en la API o que devuelva una longitud de 0.

Comentarios

Las bases de datos de programa se componen de varios flujos de datos. Algunas de esas secuencias se denominan . Puede usar este método para recopilar información sobre estas secuencias con nombre.

Para obtener el tamaño de la secuencia, use el IDiaDataSourceEx::getStreamSize método .

Ejemplo

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

Consulte también