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