IDiaDataSource::getStreamRawData
명명된 스트림의 원시 바이트를 검색합니다.
구문
HRESULT getStreamRawData (
LPCOLESTR stream,
ULONGLONG cbOffset,
ULONGLONG cbRead,
ULONGLONG* pcbRead,
BYTE* pbData
);
매개 변수
stream
[in] 디버그 정보 내의 스트림 이름입니다.
cbOffset
[in] 데이터 읽기를 시작할 스트림 내의 오프셋입니다.
cbRead
[in] 검색할 바이트 수입니다.
pcbRead
[out] 스트림에서 실제로 읽은 바이트 수입니다.
pbData
[out] 읽기 데이터를 저장할 위치입니다. 입력 시 크기는 바이트 이상 cbRead
이어야 합니다. 반환 바이트가 성공 *pcbRead
하면 유효합니다.
Return Value
성공하면 S_OK
를 반환합니다. 명명된 스트림이 PDB 내에 없는 경우 API가 실패하거나 길이가 0으로 반환될 수 있습니다.
설명
프로그램 데이터베이스는 여러 데이터 스트림으로 구성됩니다. 이러한 스트림 중 일부는 이름이 지정됩니다. 이 메서드를 사용하여 이러한 명명된 스트림에 대한 정보를 수집할 수 있습니다.
스트림의 크기를 얻으려면 메서드를 IDiaDataSourceEx::getStreamSize
사용합니다.
예시
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)) {
...