WriteByte Method (IntPtr, Int32, Byte)
Collapse the table of content
Expand the table of content

Marshal.WriteByte Method (IntPtr, Int32, Byte)

 

Writes a single byte value to unmanaged memory at a specified offset.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

[SecurityCriticalAttribute]
public static void WriteByte(
	IntPtr ptr,
	int ofs,
	byte val
)

Parameters

ptr
Type: System.IntPtr

The base address in unmanaged memory to write to.

ofs
Type: System.Int32

An additional byte offset, which is added to the ptr parameter before writing.

val
Type: System.Byte

The value to write.

Exception Condition
AccessViolationException

Base address (ptr) plus offset byte (ofs) produces a null or invalid address.

WriteByte enables direct interaction with an unmanaged C-style byte array, eliminating the expense of copying an entire unmanaged array (using Marshal.Copy) to a separate managed array before setting its element values.

The following example demonstrates how to read and write to an unmanaged array using the ReadByte and WriteByte methods.

static void ReadWriteByte()
{
    // Allocate unmanaged memory. 
    int elementSize = 1;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteByte(unmanagedArray, i * elementSize, ((Byte)(i + 1)));
    }
    Console.WriteLine("Unmanaged memory written.");

    Console.WriteLine("Reading unmanaged memory:");
    // Print the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine(Marshal.ReadByte(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show:
© 2016 Microsoft