Partition II 메타 데이터에 따르면 유효한 필드는 .NET 실행 파일에있는 CLR 메타 데이터 테이블을 나타내는 비트 마스크입니다.하지만 "정렬 된"필드는 무엇인지 알 수 없습니다 - 그 의미는 무엇이며, .NET 이식 가능 실행 가능 이미지를 만들 때이 필드에 무엇을 내야합니까?.NET 어셈블리의 "~"메타 데이터 헤더에서 정렬 된 비트 벡터 필드의 용도는 무엇입니까?
답변
특정 메타 데이터 테이블이 정렬되어 있거나 정렬되지 않은 경우 정렬 된 필드가 힌트를 표시한다고 생각합니다 (올바른 비트 필드).
이렇게하면 런타임에 구현 된 데이터를 사용하여 테이블에서 직접 이진 검색을 수행 할 수 있습니다.
편집 :이, 나는 유효한 필드가 아닌 정렬 된 필드에 대한 것으로 질문에 대한 답변 오해되지 않지만, 나는 그것이 대답
받는 관련이 경우 여기를 떠납니다 다음과 같이 얘기 "유효"필드는 관련 부분, §24.2.6, Partition II에 설명되어 있습니다 :
유효한 필드는 각 테이블에 대한 특정 비트 세트가 64 비트 bitvector입니다 스트림에 저장된다. 테이블에 대한 인덱스의 매핑은 § 22의 시작 부분에 나와 있습니다. 예를 들어 DeclSecurity 테이블이 논리 메타 데이터에있는 경우 비트 0x0e를 Valid 벡터에 설정해야합니다. Valid에 존재하지 않는 테이블을 포함하는 것은 유효하지 않으므로 0x2c 이상의 모든 비트는 0이됩니다.
§22.2로 시작하는 섹션 22의 각 하위 섹션은 하나의 테이블을 설명하고 해당 비트 인덱스를 제공합니다. 예를 들어 §22.2의 제목은 "Assembly : 0x20"입니다. 즉, §22.2에 설명 된 조립품 테이블이 PE에있는 경우에만 Valid
필드에 비트 0x20을 설정해야합니다. 이것은 이 아니며은 Valid & 0x20 == 0x20
을 의미하므로 Valid
의 0x20th (즉, 32 번째) 비트를 설정해야한다는 것을 의미합니다 (즉, Valid & (1 << 0x20) == (1 << 0x20)
).
잠시 동안 0 인덱싱인지 1 인덱싱인지 확실하지 않았으므로 0 인덱싱을 가정했습니다. 하지만 지금은 모듈 테이블이 테이블 0x00이기 때문에 그것이 0 인덱싱되었는지를 확실히 알고 있습니다.
- 1. .NET 메타 데이터의 정렬 된 테이블은 무엇입니까?
- 2. .net 어셈블리 메타 데이터 또는 헤더에서 데이터를 유지할 수 있습니까?
- 3. 비트 배열의 일반적인 용도는 무엇입니까?
- 4. 어셈블리 란 무엇이며이 어셈블리의 용도는 무엇입니까?
- 5. 정렬 벡터
- 6. MIPS 어셈블리의 비트 연산
- 7. 어셈블리의 비트 비교
- 8. 힙 데이터 구조의 용도는 무엇입니까?
- 9. IMetaDataDispenser.OpenScope를 사용하여 포함 된 어셈블리의 메타 데이터에 액세스하는 방법?
- 10. JAVAME : Java 벡터 정렬
- 11. 64 비트 어셈블리의 32 비트 명령어들
- 12. 이것이 어셈블리의 올바른 정의입니까?
- 13. 로드 된 어셈블리의 정보를 런타임에 검색하는 방법은 무엇입니까? (C#, .NET)
- 14. 비트 맵 또는 메타 파일입니까?
- 15. .NET ILMerged 어셈블리의 성능
- 16. .net 어셈블리의 최신 배포
- 17. 포인터의 벡터 정렬
- 18. 스칼라에있는 객체의 정렬 벡터
- 19. .NET 핵심 어셈블리의 아주 특별한 PublicKey
- 20. 텍스트 필드의 세로 정렬
- 21. 테이블 정렬 헤더에서 CSS 스프라이트를 사용하는 방법은 무엇입니까?
- 22. 텍스트 파일의 메타 데이터
- 23. 필드의 데이터 형식
- 24. .NET 어셈블리의 공개 키 토큰에 대한 설명
- 25. mvc의 메타 데이터 3 메타 데이터
- 26. wmf 파일의 메타 데이터?
- 27. ActivityInfo 메타 데이터 란 무엇입니까?
- 28. ForeignKey 필드의 개수로 정렬 하시겠습니까?
- 29. 벡터 그래픽 형식의 비교
- 30. .NET 어셈블리의 신선도를 검사하려면 어떻게합니까?