다음을 통해 공유


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

참고 항목