# ICorProfilerInfo::SetILFunctionBody Method

Replaces the body of the specified function in the specified module.

## Syntax

HRESULT SetILFunctionBody(
[in] ModuleID    moduleId,
[in] mdMethodDef methodid,


## Parameters

moduleId
[in] The ID of the module in which the function resides.

methodid
[in] The token of the function for which to replace the body.

pbNewILMethodHeader
[in] The new header for the function.

## Remarks

The SetILFunctionBody method replaces the relative virtual address of the function in the metadata so that it points to the new function body, and adjusts any internal data structures as required.

The SetILFunctionBody method can be called on only those functions that have never been compiled by a just-in-time (JIT) compiler.

Use the ICorProfilerInfo::GetILFunctionBodyAllocator method to allocate space for the new method to ensure that the buffer is compatible.

## Requirements

Platforms: See System Requirements.

Library: CorGuids.lib

.NET Framework Versions: Available since 2.0