Skip to content

Move unmanaged APIs for Metadata to /core folder #46991

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,419 changes: 1,419 additions & 0 deletions .openpublishing.redirection.framework.json

Large diffs are not rendered by default.

23 changes: 23 additions & 0 deletions docs/core/unmanaged-api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
description: "Learn more about unmanaged APIs for .NET"
title: .NET unmanaged API reference
ms.date: 09/19/2023
---
# .NET unmanaged API reference

This section includes information on unmanaged APIs that can be used by managed-code-related applications, such as runtime hosts, compilers, disassemblers, obfuscators, debuggers, and profilers.

These articles describe APIs that were introduced in .NET Core 2.0 and later versions, or APIs that can be used with both .NET Framework and .NET.

For .NET Framework-specific unmanaged APIs, see [.NET Framework unmanaged API reference](../../framework/unmanaged-api/index.md).

## In this section

[Debugging](./debugging/index.md)\
Describes the debugging API, which enables a debugger to debug code that runs in the common language runtime (CLR) environment.

[Metadata](./metadata/index.md)\
Describes the metadata API, which enables a client such as a compiler to generate or access a component's metadata without the types being loaded by the CLR.

[Profiling](./profiling/index.md)\
Describes the profiling API, which enables a profiler to monitor a program's execution by the CLR.
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,59 @@
description: "Learn more about: AssemblyFlags Enumeration"
title: "AssemblyFlags Enumeration"
ms.date: "03/30/2017"
api_name:
api_name:
- "AssemblyFlags"
api_location:
api_location:
- "mscoree.dll"
api_type:
api_type:
- "COM"
f1_keywords:
f1_keywords:
- "AssemblyFlags"
helpviewer_keywords:
helpviewer_keywords:
- "AssemblyFlags enumeration [.NET Framework metadata]"
ms.assetid: 40f9bd9e-16ec-447e-81b0-168c875e9866
topic_type:
topic_type:
- "apiref"
---
# AssemblyFlags Enumeration

Contains values that describe run-time features of an assembly.
## Syntax
```cpp
typedef enum {
afImplicitExportedTypes = 0x0001,
afImplicitResources = 0x0002,
afNonSideBySideAppDomain = 0x0010,
afNonSideBySideProcess = 0x0020,
afNonSideBySideMachine = 0x0030
} AssemblyFlags;
```
## Members
|Member|Description|
|------------|-----------------|
|`afImplicitExportedTypes`|Specifies that exported type definitions are implicit within the files that comprise the assembly. In the .NET Framework versions 1.0 and 1.1, this value is always assumed to be set.|
|`afImplicitResources`|Specifies that resource definitions are implicit within the files that comprise the assembly. In the .NET Framework 1.0 and 1.1, this value is always assumed to be set.|
|`afNonSideBySideAppDomain`|Specifies that the assembly cannot execute with other versions if they are running in the same application domain.|
|`afNonSideBySideProcess`|Specifies that the assembly cannot execute with other versions if they are running in the same process.|
|`afNonSideBySideMachine`|Specifies that the assembly cannot execute with other versions if they are running on the same computer.|
## Remarks

The values between 0x0010 and 0x0070, inclusive, are used to describe side-by-side compatibility features of the referenced assembly. If none of these values are set, the assembly is assumed to be side-by-side compatible.
## Requirements

**Platforms:** See [System Requirements](../../get-started/system-requirements.md).
**Header:** MsCorEE.h
**Library:** Included as a resource in MsCorEE.dll
**.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)]
Contains values that describe run-time features of an assembly.

## Syntax

```cpp
typedef enum {
afImplicitExportedTypes = 0x0001,
afImplicitResources = 0x0002,
afNonSideBySideAppDomain = 0x0010,
afNonSideBySideProcess = 0x0020,
afNonSideBySideMachine = 0x0030
} AssemblyFlags;
```

## Members

|Member|Description|
|------------|-----------------|
|`afImplicitExportedTypes`|Specifies that exported type definitions are implicit within the files that comprise the assembly. In the .NET Framework versions 1.0 and 1.1, this value is always assumed to be set.|
|`afImplicitResources`|Specifies that resource definitions are implicit within the files that comprise the assembly. In the .NET Framework 1.0 and 1.1, this value is always assumed to be set.|
|`afNonSideBySideAppDomain`|Specifies that the assembly cannot execute with other versions if they are running in the same application domain.|
|`afNonSideBySideProcess`|Specifies that the assembly cannot execute with other versions if they are running in the same process.|
|`afNonSideBySideMachine`|Specifies that the assembly cannot execute with other versions if they are running on the same computer.|

## Remarks

The values between 0x0010 and 0x0070, inclusive, are used to describe side-by-side compatibility features of the referenced assembly. If none of these values are set, the assembly is assumed to be side-by-side compatible.

## Requirements

**Platforms:** See [System Requirements](../../../framework/get-started/system-requirements.md).

**Header:** MsCorEE.h

**Library:** Included as a resource in MsCorEE.dll

**.NET versions:** Available since .NET Framework 1.0

## See also

- [Metadata Enumerations](metadata-enumerations.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,66 +2,65 @@
description: "Learn more about: ASSEMBLYMETADATA Structure"
title: "ASSEMBLYMETADATA Structure"
ms.date: "03/30/2017"
api_name:
api_name:
- "ASSEMBLYMETADATA"
api_location:
api_location:
- "mscoree.dll"
api_type:
api_type:
- "COM"
f1_keywords:
f1_keywords:
- "ASSEMBLYMETADATA"
helpviewer_keywords:
helpviewer_keywords:
- "ASSEMBLYMETADATA structure [.NET Framework metadata]"
ms.assetid: 1af98e57-9145-4d35-bb78-77d1da7c91a5
topic_type:
topic_type:
- "apiref"
---
# ASSEMBLYMETADATA Structure

Contains information about the referenced assembly, including its version and its level of support for locales, processors, and operating systems.

## Syntax

```cpp
typedef struct {
USHORT usMajorVersion;
USHORT usMinorVersion;
USHORT usBuildNumber;
USHORT usRevisionNumber;
LPWSTR szLocale;
ULONG cbLocale;
DWORD* rdwProcessor[];
ULONG ulProcessor
OSINFO* rOS[];
ULONG ulOS;
} ASSEMBLYMETADATA;
```

## Members

|Member|Description|
|------------|-----------------|
|`usMajorVersion`|The major version number of the referenced assembly. This value cannot be zero. If all the bits of `usMajorVersion` are set, the major version is not specified.|
|`usMinorVersion`|The minor version number of the referenced assembly. This value cannot be zero. If all the bits of `usMinorVersion` are set, the minor version is not specified.|
|`usBuildNumber`|The build number of the referenced assembly. This value cannot be zero. If all the bits of `usBuildNumber` are set, the build number is not specified.|
|`usRevisionNumber`|The revision number of the referenced assembly. This value cannot be zero. If all the bits of `usRevisionNumber` are set, the revision number is not specified.|
|`szLocale`|A list of locale names conforming to the RFC1766 specification, separated by semicolons, specifying the locales supported by the referenced assembly. A null value indicates locale independence. **Note:** In the .NET Framework version 1.0 you cannot specify more than one locale.|
|`cbLocale`|The size in wide characters of `szLocale`.|
|`rdwProcessor`|An array of identifiers, as defined in Winnt.h, for the processor types that are supported by the referenced assembly. A NULL value indicates processor independence.|
|`ulProcessor`|The length of the `rdwProcessor` array.|
|`rOS`|An array of [OSINFO](osinfo-structure.md) instances specifying the operating systems that are supported by the referenced assembly. A NULL value indicates operating-system independence.|
|`ulOS`|The length of the `rOS` array.|

## Requirements
Contains information about the referenced assembly, including its version and its level of support for locales, processors, and operating systems.

## Syntax

```cpp
typedef struct {
USHORT usMajorVersion;
USHORT usMinorVersion;
USHORT usBuildNumber;
USHORT usRevisionNumber;
LPWSTR szLocale;
ULONG cbLocale;
DWORD* rdwProcessor[];
ULONG ulProcessor
OSINFO* rOS[];
ULONG ulOS;
} ASSEMBLYMETADATA;
```

## Members

|Member|Description|
|------------|-----------------|
|`usMajorVersion`|The major version number of the referenced assembly. This value cannot be zero. If all the bits of `usMajorVersion` are set, the major version is not specified.|
|`usMinorVersion`|The minor version number of the referenced assembly. This value cannot be zero. If all the bits of `usMinorVersion` are set, the minor version is not specified.|
|`usBuildNumber`|The build number of the referenced assembly. This value cannot be zero. If all the bits of `usBuildNumber` are set, the build number is not specified.|
|`usRevisionNumber`|The revision number of the referenced assembly. This value cannot be zero. If all the bits of `usRevisionNumber` are set, the revision number is not specified.|
|`szLocale`|A list of locale names conforming to the RFC1766 specification, separated by semicolons, specifying the locales supported by the referenced assembly. A null value indicates locale independence. **Note:** In the .NET Framework version 1.0 you cannot specify more than one locale.|
|`cbLocale`|The size in wide characters of `szLocale`.|
|`rdwProcessor`|An array of identifiers, as defined in Winnt.h, for the processor types that are supported by the referenced assembly. A NULL value indicates processor independence.|
|`ulProcessor`|The length of the `rdwProcessor` array.|
|`rOS`|An array of [OSINFO](osinfo-structure.md) instances specifying the operating systems that are supported by the referenced assembly. A NULL value indicates operating-system independence.|
|`ulOS`|The length of the `rOS` array.|

## Requirements

**Platforms:** See [System Requirements](../../../framework/get-started/system-requirements.md).

**Header:** Cor.h

**Library:** Used as a resource in MsCorEE.dll

**.NET versions:** Available since .NET Framework 1.0

**Platforms:** See [System Requirements](../../get-started/system-requirements.md).

**Header:** Cor.h

**Library:** Used as a resource in MsCorEE.dll

**.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)]

## See also

- [Metadata Structures](metadata-structures.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,45 @@
description: "Learn more about: AssemblyRefFlags Enumeration"
title: "AssemblyRefFlags Enumeration"
ms.date: "03/30/2017"
api_name:
api_name:
- "AssemblyRefFlags"
api_location:
api_location:
- "mscoree.dll"
api_type:
api_type:
- "COM"
f1_keywords:
f1_keywords:
- "AssemblyRefFlags"
helpviewer_keywords:
helpviewer_keywords:
- "AssemblyRefFlags enumeration [.NET Framework metadata]"
ms.assetid: decd4f46-f3b2-466f-9501-e74f2b86b846
topic_type:
topic_type:
- "apiref"
---
# AssemblyRefFlags Enumeration

Contains values that describe features of an assembly reference.
## Syntax
```cpp
typedef enum {
arfFullOriginator = 0x0001
} AssemblyRefFlags;
```
## Members
|Member|Description|
|------------|-----------------|
|`arfFullOriginator`|Specifies that the assembly reference contains full, unhashed information about the publisher of the assembly.|
## Requirements

**Platforms:** See [System Requirements](../../get-started/system-requirements.md).
**Header:** Cor.h
**.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)]
Contains values that describe features of an assembly reference.

## Syntax

```cpp
typedef enum {
arfFullOriginator = 0x0001
} AssemblyRefFlags;
```

## Members

|Member|Description|
|------------|-----------------|
|`arfFullOriginator`|Specifies that the assembly reference contains full, unhashed information about the publisher of the assembly.|

## Requirements

**Platforms:** See [System Requirements](../../../framework/get-started/system-requirements.md).

**Header:** Cor.h

**.NET versions:** Available since .NET Framework 1.0

## See also

- [Metadata Enumerations](metadata-enumerations.md)
Expand Down
56 changes: 56 additions & 0 deletions docs/core/unmanaged-api/metadata/ceesectionattr-enumeration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
description: "Learn more about: CeeSectionAttr Enumeration"
title: "CeeSectionAttr Enumeration"
ms.date: "03/30/2017"
api_name:
- "CeeSectionAttr"
api_location:
- "mscoree.dll"
api_type:
- "COM"
f1_keywords:
- "CeeSectionAttr"
helpviewer_keywords:
- "CeeSectionAttr enumeration [.NET Framework metadata]"
topic_type:
- "apiref"
---
# CeeSectionAttr Enumeration

Provides values that specify attributes of a section for use by the [ICeeGen](iceegen-interface.md) interface.

## Syntax

```cpp
typedef enum {
sdNone = 0,
sdReadOnly = IMAGE_SCN_CNT_INITIALIZED_DATA |
IMAGE_SCN_MEM_READ,
sdReadWrite = sdReadOnly | IMAGE_SCN_MEM_WRITE,
sdExecute = IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_CODE |
IMAGE_SCN_MEM_EXECUTE
} CeeSectionAttr;
```

## Members

|Member|Description|
|------------|-----------------|
|`sdNone`|Section has no attributes.|
|`sdReadOnly`|Section contains initialized data that can be only read, not updated.|
|`sdReadWrite`|Section contains initialized data that can be read or updated.|
|`sdExecute`|Section contains executable code that is allowed to be read and executed.|

## Requirements

**Platforms:** See [System Requirements](../../../framework/get-started/system-requirements.md).

**Header:** Cor.h

**Library:** Included as a resource in MsCorEE.dll

**.NET versions:** Available since .NET Framework 1.0

## See also

- [Metadata Enumerations](metadata-enumerations.md)
Loading
Loading