PDEBUG_EXTENSION_KNOWN_STRUCT 콜백 함수(dbgeng.h)
엔진은 KnownStructOutput 콜백 함수를 호출하여 확장 DLL이 인쇄에 서식을 지정할 수 있는 구조체에 대한 정보를 요청합니다. 엔진은 다음과 같은 이유로 이 함수를 호출합니다.
- DLL이 인쇄에 서식을 지정할 수 있는 구조 목록을 가져옵니다.
- 특정 구조체의 한 줄 표현을 가져옵니다.
- 특정 구조체의 이름이 한 줄 표현과 함께 인쇄되어야 하는지 여부를 묻습니다.
구문
PDEBUG_EXTENSION_KNOWN_STRUCT PdebugExtensionKnownStruct;
HRESULT PdebugExtensionKnownStruct(
[in] ULONG Flags,
[in] ULONG64 Offset,
[in] PSTR TypeName,
[out] PSTR Buffer,
[in, out] PULONG BufferChars
)
{...}
매개 변수
[in] Flags
엔진이 확장 DLL에서 가져오려는 정보에 따라 다음 값 중 하나입니다.
값 | Description |
---|---|
DEBUG_KNOWN_STRUCT_GET_NAMES | 구조체 이름 목록을 가져옵니다. |
DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME | 구조체의 이름을 인쇄해야 하는지 여부를 묻습니다. |
DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT | 구조체의 한 줄 표현을 가져옵니다. |
[in] Offset
이름 목록을 가져오는 경우: 하지 않는.
이름을 인쇄해야 하는지 여부를 묻는 경우: 하지 않는.
한 줄 표현을 가져오는 경우: 인쇄할 구조체의 대상 메모리 주소 공간에 있는 위치를 지정합니다.
[in] TypeName
이름 목록을 가져오는 경우: 하지 않는.
이름을 인쇄해야 하는지 여부를 묻는 경우: 구조체의 이름을 지정합니다. DEBUG_KNOWN_STRUCT_GET_NAMES 쿼리에서 반환된 이름 중 하나입니다.
한 줄 표현을 가져오는 경우: 구조체의 이름을 지정합니다. DEBUG_KNOWN_STRUCT_GET_NAMES 쿼리에서 반환된 이름 중 하나입니다.
[out] Buffer
이름 목록을 가져오는 경우: 확장에서 인쇄에 서식을 지정할 수 있는 구조체의 이름 목록을 받습니다. 각 이름 쌍 사이에 하나의 null 문자가 나타나야 합니다. 목록은 두 개의 null 문자로 종료되어야 합니다. 이 버퍼에 기록된 문자 수는 BufferSize 값을 초과하면 안 됩니다.
이름을 인쇄해야 하는지 여부를 묻는 경우: 하지 않는.
한 줄 표현을 가져오는 경우:StructName 및 Address로 식별되는 구조체의 표현을 문자열로 받습니다. 이 버퍼에 기록된 문자 수는 BufferSize 값을 초과하면 안 됩니다.
[in, out] BufferChars
이름 목록을 가져오는 경우: 입력에서 는 버퍼의 크기(문자)를 지정합니다. 출력 시 버퍼가 너무 작으면 필요한 버퍼 크기를 받습니다.
이름을 인쇄해야 하는지 여부를 묻는 경우: 하지 않는.
한 줄 표현을 가져오는 경우: 입력에서 는 버퍼의 크기(문자)를 지정합니다. 출력 시 버퍼가 너무 작으면 필요한 버퍼 크기를 받습니다.
반환 값
반환 코드 | Description |
---|---|
|
이름 목록을 가져오는 경우: Buffer 에는 요청된 이름 목록이 포함됩니다.
이름을 인쇄해야 하는지 여부를 묻는 경우: 이름 인쇄를 표시하지 않아야 합니다. 즉, 이름을 인쇄하면 안 됩니다. 한 줄 표현을 가져오는 경우: 버퍼 에는 요청된 한 줄 표현이 포함됩니다. |
|
이름 목록을 가져오는 경우: BufferSize 가 입력 시 너무 작습니다. 출력에서 BufferSize 에는 필요한 버퍼 크기가 포함됩니다.
이름을 인쇄해야 하는지 여부를 묻는 경우: 이름 인쇄를 표시하지 않아야 합니다. 즉, 이름을 인쇄해야 합니다. 한 줄 표현을 가져오는 경우: BufferSize 가 입력 시 너무 작습니다. 출력에서 BufferSize 에는 필요한 버퍼 크기가 포함됩니다. |
다른 모든 반환 값은 함수가 실패했음을 나타냅니다. 엔진은 버퍼의 내용을 계속 무시합니다.
설명
이 함수는 선택 사항입니다. 확장 DLL은 한 줄로 인쇄할 특수 구조체의 서식을 지정할 수 있는 경우에만 KnownStructOutput 을 내보내야 합니다. 엔진은 확장 DLL에서 이름으로 이 함수를 찾습니다.
확장 DLL을 초기화한 후 엔진은 이 함수를 호출하여 DLL에서 인쇄 방법을 알고 있는 구조체 이름 목록을 쿼리합니다. 그런 다음 엔진이 목록에 이름이 있는 구조체 중 하나의 요약을 인쇄할 때마다 이 함수를 호출하여 인쇄할 구조체의 형식을 지정합니다.
KnownStructOutput 은 Dbgeng.h 헤더 파일에서 PDEBUG_EXTENSION_KNOWN_STRUCT 호출됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | dbgeng.h |