Бөлісу құралы:


Marshal Класс

Определение

Предоставляет коллекцию методов для выделения неуправляемой памяти, копирования неуправляемых блоков памяти и преобразования управляемых в неуправляемые типы, а также других других методов, используемых при взаимодействии с неуправляемым кодом.

public ref class Marshal abstract sealed
public ref class Marshal sealed
public static class Marshal
public sealed class Marshal
type Marshal = class
Public Class Marshal
Public NotInheritable Class Marshal
Наследование
Marshal

Примеры

В следующем примере показано, как использовать различные методы, определенные классом Marshal .

using namespace System;
using namespace System::Runtime::InteropServices;

public value struct Point
{
public:
    property int X;
    property int Y;
};
extern bool CloseHandle(IntPtr h);

int main()
{
    // Demonstrate the use of public static fields of the Marshal
    // class.
    Console::WriteLine(
        "SystemDefaultCharSize={0},SystemMaxDBCSCharSize={1}",
        Marshal::SystemDefaultCharSize,
        Marshal::SystemMaxDBCSCharSize);

    // Demonstrate how to call GlobalAlloc and
    // GlobalFree using the Marshal class.
    IntPtr hglobal = Marshal::AllocHGlobal(100);
    Marshal::FreeHGlobal(hglobal);

    // Demonstrate how to use the Marshal class to get the Win32
    // error code when a Win32 method fails.
    bool isCloseHandleSuccess = CloseHandle(IntPtr(-1));
    if (!isCloseHandleSuccess)
    {
        Console::WriteLine(
            "CloseHandle call failed with an error code of: {0}",
            Marshal::GetLastWin32Error());
    }
};

// This is a platform invoke prototype. SetLastError is true,
// which allows the GetLastWin32Error method of the Marshal class
// to work correctly.
[DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
extern bool CloseHandle(IntPtr h);

// This code produces the following output.
//
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// CloseHandle call failed with an error code of: 6
using System;
using System.Text;
using System.Runtime.InteropServices;

public struct Point
{
    public Int32 x, y;
}

public sealed class App
{
    static void Main()
    {
        // Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}",
            Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize);

        // Demonstrate how to call GlobalAlloc and
        // GlobalFree using the Marshal class.
        IntPtr hglobal = Marshal.AllocHGlobal(100);
        Marshal.FreeHGlobal(hglobal);

        // Demonstrate how to use the Marshal class to get the Win32 error
        // code when a Win32 method fails.
        Boolean f = CloseHandle(new IntPtr(-1));
        if (!f)
        {
            Console.WriteLine("CloseHandle call failed with an error code of: {0}",
                Marshal.GetLastWin32Error());
        }
    }

    // This is a platform invoke prototype. SetLastError is true, which allows
    // the GetLastWin32Error method of the Marshal class to work correctly.
    [DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
    static extern Boolean CloseHandle(IntPtr h);
}

// This code produces the following output.
//
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// CloseHandle call failed with an error code of: 6
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Security.Permissions

Public Structure Point
    Public x, y As Int32
End Structure

Public NotInheritable Class App

    <SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
    Shared Sub Main()
        ' Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}", Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize)

        ' Demonstrate how to call GlobalAlloc and
        ' GlobalFree using the Marshal class.
        Dim hglobal As IntPtr = Marshal.AllocHGlobal(100)
        Marshal.FreeHGlobal(hglobal)

        ' Demonstrate how to use the Marshal class to get the Win32 error
        ' code when a Win32 method fails.
        Dim f As [Boolean] = CloseHandle(New IntPtr(-1))
        If Not f Then
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", Marshal.GetLastWin32Error())
        End If
    End Sub

    ' This is a platform invoke prototype. SetLastError is true, which allows
    ' the GetLastWin32Error method of the Marshal class to work correctly.
    <DllImport("Kernel32", ExactSpelling:=True, SetLastError:=True)> _
    Shared Function CloseHandle(ByVal h As IntPtr) As [Boolean]

    End Function
End Class

' This code produces the following output.
'
' SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
' CloseHandle call failed with an error code of: 6

Комментарии

Методы static , Marshal определенные в классе, важны для работы с неуправляемым кодом. Большинство методов, определенных в этом классе, обычно используются разработчиками, которые хотят обеспечить мост между управляемыми и неуправляемыми моделями программирования. Например, StringToHGlobalAnsi метод копирует символы ANSI из указанной строки (в управляемой куче) в буфер в неуправляемой куче. Он также выделяет целевую кучу правильного размера.

Среда CLR предоставляет определенные возможности маршалинга. Дополнительные сведения о поведении маршалинга см. в разделе "Маршалинг взаимодействия".

Read Методы Write в классе поддерживают как выровненный, так и неуправляемый Marshal доступ.

Поля

Имя Описание
SystemDefaultCharSize

Представляет размер символов по умолчанию в системе; Значение по умолчанию — 2 для систем Юникода и 1 для систем ANSI. Это поле доступно только для чтения.

SystemMaxDBCSCharSize

Представляет максимальный размер двойного байтового набора символов (DBCS) в байтах для текущей операционной системы. Это поле доступно только для чтения.

Методы

Имя Описание
AddRef(IntPtr)

Увеличивает число ссылок в указанном интерфейсе.

AllocCoTaskMem(Int32)

Выделяет блок памяти указанного размера из распределителя памяти задачи COM.

AllocHGlobal(Int32)

Выделяет память из неуправляемой памяти процесса с помощью указанного числа байтов.

AllocHGlobal(IntPtr)

Выделяет память из неуправляемой памяти процесса с помощью указателя на указанное число байтов.

AreComObjectsAvailableForCleanup()

Указывает, доступны ли вызываемые оболочки среды выполнения (RCW) из любого контекста для очистки.

BindToMoniker(String)

Возвращает указатель интерфейса, определяемый указанным моникером.

ChangeWrapperHandleStrength(Object, Boolean)

Изменяет силу вызываемого обработчика COM объекта (CCW ).

CleanupUnusedObjectsInCurrentContext()

Уведомляет среду выполнения очистить все вызываемые оболочки среды выполнения (RCW), выделенные в текущем контексте.

Copy(Byte[], Int32, IntPtr, Int32)

Копирует данные из одномерного 8-разрядного целого массива без знака в неуправляемый указатель памяти.

Copy(Char[], Int32, IntPtr, Int32)

Копирует данные из одномерного массива управляемых символов в неуправляемый указатель памяти.

Copy(Double[], Int32, IntPtr, Int32)

Копирует данные из одномерного массива чисел с плавающей запятой двойной точности в неуправляемый указатель памяти.

Copy(Int16[], Int32, IntPtr, Int32)

Копирует данные из одномерного 16-разрядного целого числа со знаком в неуправляемый указатель памяти.

Copy(Int32[], Int32, IntPtr, Int32)

Копирует данные из одномерного 32-разрядного целого числа со знаком в неуправляемый указатель памяти.

Copy(Int64[], Int32, IntPtr, Int32)

Копирует данные из одномерного 64-разрядного целого числа со знаком в неуправляемый указатель памяти.

Copy(IntPtr, Byte[], Int32, Int32)

Копирует данные из указателя неуправляемой памяти в управляемый 8-разрядный целый массив без знака.

Copy(IntPtr, Char[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в управляемый массив символов.

Copy(IntPtr, Double[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в массив чисел с плавающей запятой управляемой двойной точности.

Copy(IntPtr, Int16[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в управляемый 16-разрядный целочисленный массив со знаком.

Copy(IntPtr, Int32[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в управляемый 32-разрядный целочисленный массив со знаком.

Copy(IntPtr, Int64[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в управляемый 64-разрядный целочисленный массив со знаком.

Copy(IntPtr, IntPtr[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в управляемый IntPtr массив.

Copy(IntPtr, Single[], Int32, Int32)

Копирует данные из неуправляемого указателя памяти в массив чисел с плавающей запятой управляемой точности.

Copy(IntPtr[], Int32, IntPtr, Int32)

Копирует данные из одномерного управляемого массива в неуправляемый IntPtr указатель памяти.

Copy(Single[], Int32, IntPtr, Int32)

Копирует данные из одномерного одномерного массива чисел с плавающей запятой с одной точностью в неуправляемый указатель памяти.

CreateAggregatedObject(IntPtr, Object)
Устаревшие..

Агрегирует управляемый объект с указанным COM-объектом.

CreateAggregatedObject<T>(IntPtr, T)

Агрегирует управляемый объект указанного типа с указанным COM-объектом.

CreateWrapperOfType(Object, Type)
Устаревшие..

Упаковывает указанный COM-объект в объект указанного типа.

CreateWrapperOfType<T,TWrapper>(T)

Упаковывает указанный COM-объект в объект указанного типа.

DestroyStructure(IntPtr, Type)
Устаревшие..

Освобождает все подструктуры, на которые указывает указанный неуправляемый блок памяти.

DestroyStructure<T>(IntPtr)

Освобождает все подструктуры указанного типа, на которые указывает указанный неуправляемый блок памяти.

FinalReleaseComObject(Object)

Освобождает все ссылки на вызываемую оболочку среды выполнения (RCW), установив для нее значение 0.

FreeBSTR(IntPtr)

BSTR Освобождает функцию COM SysFreeString.

FreeCoTaskMem(IntPtr)

Освобождает блок памяти, выделенный неуправляемой com-памятью.

FreeHGlobal(IntPtr)

Освобождает память, ранее выделенную из неуправляемой памяти процесса.

GenerateGuidForType(Type)

Возвращает глобальный уникальный идентификатор (GUID) для указанного типа или создает GUID с помощью алгоритма, используемого экспортером библиотеки типов (Tlbexp.exe).

GenerateProgIdForType(Type)

Возвращает программный идентификатор (ProgID) для указанного типа.

GetActiveObject(String)

Получает запущенный экземпляр указанного объекта из запущенной таблицы объектов (ROT).

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Устаревшие..

Возвращает указатель на интерфейс IUnknown , представляющий указанный интерфейс для указанного объекта. Доступ к пользовательскому интерфейсу запросов управляется указанным режимом настройки.

GetComInterfaceForObject(Object, Type)
Устаревшие..

Возвращает указатель на интерфейс IUnknown , представляющий указанный интерфейс для указанного объекта. Доступ к пользовательскому интерфейсу запросов включен по умолчанию.

GetComInterfaceForObject<T,TInterface>(T)

Возвращает указатель на интерфейс IUnknown , представляющий указанный интерфейс для объекта указанного типа. Доступ к пользовательскому интерфейсу запросов включен по умолчанию.

GetComInterfaceForObjectInContext(Object, Type)

Возвращает указатель интерфейса, представляющий указанный интерфейс для объекта, если вызывающий объект находится в том же контексте, что и этот объект.

GetComObjectData(Object, Object)

Извлекает данные, на которые ссылается указанный ключ из указанного COM-объекта.

GetComSlotForMethodInfo(MemberInfo)

Извлекает слот виртуальной таблицы функций (v-table или YAML) для указанного MemberInfo типа, когда этот тип предоставляется com.

GetDelegateForFunctionPointer(IntPtr, Type)
Устаревшие..

Преобразует неуправляемый указатель функции на делегат.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Преобразует неуправляемый указатель функции на делегат указанного типа.

GetEndComSlot(Type)

Извлекает последний слот в таблице виртуальных функций (v-table или YAML) типа при доступе к COM.

GetExceptionCode()
Устаревшие..

Извлекает код, определяющий тип возникного исключения.

GetExceptionForHR(Int32, Guid, IntPtr)

Предоставляет коллекцию методов для выделения неуправляемой памяти, копирования неуправляемых блоков памяти и преобразования управляемых в неуправляемые типы, а также других других методов, используемых при взаимодействии с неуправляемым кодом.

GetExceptionForHR(Int32, IntPtr)

Преобразует указанный код ошибки HRESULT в соответствующий Exception объект с дополнительными сведениями об ошибках, передаваемыми в интерфейсе IErrorInfo для объекта исключения.

GetExceptionForHR(Int32)

Преобразует указанный код ошибки HRESULT в соответствующий Exception объект.

GetExceptionPointers()

Извлекает независимое от компьютера описание исключения и сведения о состоянии, которое существовало для потока при возникновении исключения.

GetFunctionPointerForDelegate(Delegate)
Устаревшие..

Преобразует делегат в указатель функции, вызываемый из неуправляемого кода.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Преобразует делегат указанного типа в указатель функции, вызываемый из неуправляемого кода.

GetHINSTANCE(Module)

Возвращает дескриптор экземпляра (HINSTANCE) для указанного модуля.

GetHRForException(Exception)

Преобразует указанное исключение в HRESULT.

GetHRForLastWin32Error()

Возвращает HRESULT, соответствующую последней ошибке, выполняемой с помощью Marshalкода Win32.

GetIDispatchForObject(Object)

Возвращает интерфейс IDispatch из управляемого объекта.

GetIDispatchForObjectInContext(Object)

Возвращает указатель интерфейса IDispatch из управляемого объекта, если вызывающий объект находится в том же контексте, что и этот объект.

GetITypeInfoForType(Type)

ITypeInfo Возвращает интерфейс из управляемого типа.

GetIUnknownForObject(Object)

Возвращает интерфейс IUnknown из управляемого объекта.

GetIUnknownForObjectInContext(Object)

Возвращает интерфейс IUnknown из управляемого объекта, если вызывающий объект находится в том же контексте, что и этот объект.

GetLastPInvokeError()

Получение последней ошибки вызова платформы в текущем потоке.

GetLastPInvokeErrorMessage()

Возвращает системное сообщение об ошибке для последнего кода ошибки PInvoke.

GetLastSystemError()

Возвращает последнюю системную ошибку в текущем потоке.

GetLastWin32Error()

Возвращает код ошибки, возвращаемый последней неуправляемой функцией, которая была вызвана с помощью вызова платформы с набором флагов SetLastError .

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Устаревшие..

Возвращает указатель на созданную во время выполнения функцию, которая маршалирует вызов из управляемого в неуправляемый код.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Извлекает MemberInfo объект для указанного слота виртуальной функции (v-table или YAML).

GetNativeVariantForObject(Object, IntPtr)
Устаревшие..

Преобразует объект в COM VARIANT.

GetNativeVariantForObject<T>(T, IntPtr)
Устаревшие..

Преобразует объект указанного типа в COM VARIANT.

GetObjectForIUnknown(IntPtr)

Возвращает экземпляр типа, представляющего COM-объект указателем на его интерфейс IUnknown .

GetObjectForNativeVariant(IntPtr)
Устаревшие..

Преобразует COM VARIANT в объект.

GetObjectForNativeVariant<T>(IntPtr)
Устаревшие..

Преобразует COM VARIANT в объект указанного типа.

GetObjectsForNativeVariants(IntPtr, Int32)
Устаревшие..

Преобразует массив VARIANTs COM в массив объектов.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Устаревшие..

Преобразует массив VARIANTs COM в массив указанного типа.

GetPInvokeErrorMessage(Int32)

Возвращает системное сообщение об ошибке для предоставленного кода ошибки.

GetStartComSlot(Type)

Возвращает первый слот в таблице виртуальных функций (v-table или YAML), который содержит определяемые пользователем методы.

GetThreadFromFiberCookie(Int32)
Устаревшие..

Преобразует файл cookie волокна в соответствующий Thread экземпляр.

GetTypedObjectForIUnknown(IntPtr, Type)

Возвращает управляемый объект указанного типа, представляющего COM-объект.

GetTypeForITypeInfo(IntPtr)

Преобразует неуправляемый объект ITypeInfo в управляемый Type объект.

GetTypeFromCLSID(Guid)

Возвращает тип, связанный с указанным идентификатором класса (CLSID).

GetTypeInfoName(ITypeInfo)

Извлекает имя типа, представленного объектом ITypeInfo .

GetTypeInfoName(UCOMITypeInfo)
Устаревшие..

Извлекает имя типа, представленного объектом ITypeInfo .

GetTypeLibGuid(ITypeLib)

Извлекает идентификатор библиотеки (LIBID) библиотеки типов.

GetTypeLibGuid(UCOMITypeLib)
Устаревшие..

Извлекает идентификатор библиотеки (LIBID) библиотеки типов.

GetTypeLibGuidForAssembly(Assembly)

Извлекает идентификатор библиотеки (LIBID), назначенный библиотеке типов при экспорте из указанной сборки.

GetTypeLibLcid(ITypeLib)

Извлекает LCID библиотеки типов.

GetTypeLibLcid(UCOMITypeLib)
Устаревшие..

Извлекает LCID библиотеки типов.

GetTypeLibName(ITypeLib)

Извлекает имя библиотеки типов.

GetTypeLibName(UCOMITypeLib)
Устаревшие..

Извлекает имя библиотеки типов.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Извлекает номер версии библиотеки типов, которая будет экспортирована из указанной сборки.

GetUniqueObjectForIUnknown(IntPtr)

Создает уникальный объект вызываемой оболочки среды выполнения (RCW) для заданного интерфейса IUnknown .

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Устаревшие..

Возвращает указатель на созданную во время выполнения функцию, которая маршалирует вызов из неуправляемого в управляемый код.

InitHandle(SafeHandle, IntPtr)

Инициализирует базовый дескриптор только что созданного SafeHandle в предоставленное значение.

IsComObject(Object)

Указывает, представляет ли указанный объект COM.

IsTypeVisibleFromCom(Type)

Указывает, является ли тип видимым для com-клиентов.

NumParamBytes(MethodInfo)

Вычисляет количество байтов в неуправляемой памяти, необходимых для хранения параметров для указанного метода.

OffsetOf(Type, String)
Устаревшие..

Возвращает смещение поля неуправляемой формы управляемого класса.

OffsetOf<T>(String)

Возвращает смещение поля неуправляемой формы указанного управляемого класса.

Prelink(MethodInfo)

Выполняет задачи одноразовой настройки метода без вызова метода.

PrelinkAll(Type)

Выполняет предварительную проверку ссылок для всех методов в классе.

PtrToStringAnsi(IntPtr, Int32)

Выделяет управляемое String, копирует указанное число символов из неуправляемой строки ANSI или UTF-8 в нее и расширяет каждый символ в UTF-16.

PtrToStringAnsi(IntPtr)

Копирует все символы до первого null-символа из неуправляемой строки ANSI или UTF-8 в управляемую String, и расширяет каждый символ до UTF-16.

PtrToStringAuto(IntPtr, Int32)

Выделяет управляемое String и копирует указанное число символов из строки, хранящейся в неуправляемой памяти.

PtrToStringAuto(IntPtr)

Выделяет управляемый String и копирует все символы до первого null-символа из строки, хранящейся в неуправляемой памяти.

PtrToStringBSTR(IntPtr)

Выделяет в неуправляемую двоичную строку (BSTR), хранящуюся в неуправляемой памяти.

PtrToStringUni(IntPtr, Int32)

Выделяет управляемое String и копирует указанное число символов из неуправляемой строки Юникода в него.

PtrToStringUni(IntPtr)

Выделяет управляемый String и копирует все символы до первого null-символа из неуправляемой строки Юникода в него.

PtrToStringUTF8(IntPtr, Int32)

Выделяет управляемое String и копирует указанное число байтов из неуправляемой строки UTF8 в нее.

PtrToStringUTF8(IntPtr)

Выделяет управляемый String и копирует все символы до первого null-символа из неуправляемой строки UTF-8 в нее.

PtrToStructure(IntPtr, Object)
Устаревшие..

Маршалирует данные из неуправляемого блока памяти в управляемый объект.

PtrToStructure(IntPtr, Type)
Устаревшие..

Маршалирует данные из неуправляемого блока памяти в только что выделенный управляемый объект указанного типа.

PtrToStructure<T>(IntPtr, T)

Маршалирует данные из неуправляемого блока памяти в управляемый объект указанного типа.

PtrToStructure<T>(IntPtr)

Маршалирует данные из неуправляемого блока памяти в недавно выделенный управляемый объект типа, указанного параметром универсального типа.

QueryInterface(IntPtr, Guid, IntPtr)

Запрашивает указатель на указанный интерфейс из COM-объекта.

ReadByte(IntPtr, Int32)

Считывает один байт в заданном смещение (или индекс) из неуправляемой памяти.

ReadByte(IntPtr)

Считывает один байт из неуправляемой памяти.

ReadByte(Object, Int32)
Устаревшие..

Считывает один байт в заданном смещение (или индекс) из неуправляемой памяти.

ReadInt16(IntPtr, Int32)

Считывает 16-разрядное целое число со знаком в заданном смещение из неуправляемой памяти.

ReadInt16(IntPtr)

Считывает 16-разрядное целое число со знаком из неуправляемой памяти.

ReadInt16(Object, Int32)
Устаревшие..

Считывает 16-разрядное целое число со знаком в заданном смещение из неуправляемой памяти.

ReadInt32(IntPtr, Int32)

Считывает 32-разрядное целое число со знаком в заданном смещение из неуправляемой памяти.

ReadInt32(IntPtr)

Считывает 32-разрядное целое число со знаком из неуправляемой памяти.

ReadInt32(Object, Int32)
Устаревшие..

Считывает 32-разрядное целое число со знаком в заданном смещение из неуправляемой памяти.

ReadInt64(IntPtr, Int32)

Считывает 64-разрядное целое число со знаком в заданном смещение из неуправляемой памяти.

ReadInt64(IntPtr)

Считывает 64-разрядное целое число со знаком из неуправляемой памяти.

ReadInt64(Object, Int32)
Устаревшие..

Считывает 64-разрядное целое число со знаком в заданном смещение из неуправляемой памяти.

ReadIntPtr(IntPtr, Int32)

Считывает целое число собственного размера процессора с заданным смещением из неуправляемой памяти.

ReadIntPtr(IntPtr)

Считывает целое число собственного размера процессора из неуправляемой памяти.

ReadIntPtr(Object, Int32)
Устаревшие..

Считывает целое число собственного размера процессора из неуправляемой памяти.

ReAllocCoTaskMem(IntPtr, Int32)

Изменяет размер блока памяти, ранее выделенного с помощью AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Изменяет размер блока памяти, ранее выделенного с помощью AllocHGlobal(IntPtr).

Release(IntPtr)

Уменьшает количество ссылок в указанном интерфейсе.

ReleaseComObject(Object)

Уменьшает количество ссылок вызываемого оболочки среды выполнения (RCW), связанного с указанным com-объектом.

ReleaseThreadCache()
Устаревшие..

Освобождает кэш потоков.

SecureStringToBSTR(SecureString)

Выделяет неуправляемую двоичную строку (BSTR) и копирует содержимое управляемого SecureString объекта в него.

SecureStringToCoTaskMemAnsi(SecureString)

Копирует содержимое управляемого объекта в блок памяти, выделенный из неуправляемого SecureString com-распределителя задач.

SecureStringToCoTaskMemUnicode(SecureString)

Копирует содержимое управляемого объекта в блок памяти, выделенный из неуправляемого SecureString com-распределителя задач.

SecureStringToGlobalAllocAnsi(SecureString)

Копирует содержимое управляемого в неуправляемую SecureString память, преобразуя в формат ANSI при копировании.

SecureStringToGlobalAllocUnicode(SecureString)

Копирует содержимое управляемого объекта в неуправляемую SecureString память.

SetComObjectData(Object, Object, Object)

Задает данные, на которые ссылается указанный ключ в указанном объекте COM.

SetLastPInvokeError(Int32)

Задает последнюю ошибку вызова платформы в текущем потоке.

SetLastSystemError(Int32)

Задает последнюю системную ошибку в текущем потоке.

SizeOf(Object)
Устаревшие..

Возвращает неуправляемый размер объекта в байтах.

SizeOf(Type)
Устаревшие..

Возвращает размер неуправляемого типа в байтах.

SizeOf<T>()

Возвращает размер неуправляемого типа в байтах.

SizeOf<T>(T)

Возвращает неуправляемый размер объекта указанного типа в байтах.

StringToBSTR(String)

Выделяет BSTR и копирует в него содержимое управляемого String объекта.

StringToCoTaskMemAnsi(String)

Копирует содержимое управляемого в блок памяти, выделенный неуправляемой String задачей COM.

StringToCoTaskMemAuto(String)

Копирует содержимое управляемого в блок памяти, выделенный неуправляемой String задачей COM.

StringToCoTaskMemUni(String)

Копирует содержимое управляемого в блок памяти, выделенный неуправляемой String задачей COM.

StringToCoTaskMemUTF8(String)

Копирует содержимое управляемого в блок памяти, выделенный неуправляемой String задачей COM.

StringToHGlobalAnsi(String)

Копирует содержимое управляемого в неуправляемую String память, преобразуя в формат ANSI при копировании.

StringToHGlobalAuto(String)

Копирует содержимое управляемой в неуправляемую String память, преобразуя в формат ANSI при необходимости.

StringToHGlobalUni(String)

Копирует содержимое управляемого в неуправляемую String память.

StructureToPtr(Object, IntPtr, Boolean)
Устаревшие..

Маршалирует данные из управляемого объекта в неуправляемый блок памяти.

StructureToPtr<T>(T, IntPtr, Boolean)

Маршалирует данные из управляемого объекта указанного типа в неуправляемый блок памяти.

ThrowExceptionForHR(Int32, Guid, IntPtr)

Предоставляет коллекцию методов для выделения неуправляемой памяти, копирования неуправляемых блоков памяти и преобразования управляемых в неуправляемые типы, а также других других методов, используемых при взаимодействии с неуправляемым кодом.

ThrowExceptionForHR(Int32, IntPtr)

Создает исключение с определенным сбоем HRESULT на основе указанного интерфейса IErrorInfo .

ThrowExceptionForHR(Int32)

Создает исключение с определенным значением HRESULT сбоя.

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Устаревшие..

Возвращает адрес элемента по указанному индексу внутри указанного массива.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Возвращает адрес элемента по указанному индексу в массиве указанного типа.

WriteByte(IntPtr, Byte)

Записывает одно байтовое значение в неуправляемую память.

WriteByte(IntPtr, Int32, Byte)

Записывает одно байтовое значение в неуправляемую память с указанным смещением.

WriteByte(Object, Int32, Byte)
Устаревшие..

Записывает одно байтовое значение в неуправляемую память с указанным смещением.

WriteInt16(IntPtr, Char)

Записывает символ в виде 16-разрядного целочисленного значения в неуправляемую память.

WriteInt16(IntPtr, Int16)

Записывает 16-разрядное целое значение в неуправляемую память.

WriteInt16(IntPtr, Int32, Char)

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

WriteInt16(IntPtr, Int32, Int16)

Записывает 16-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt16(Object, Int32, Char)
Устаревшие..

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

WriteInt16(Object, Int32, Int16)
Устаревшие..

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

WriteInt32(IntPtr, Int32, Int32)

Записывает 32-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt32(IntPtr, Int32)

Записывает 32-разрядное целое число со знаком в неуправляемую память.

WriteInt32(Object, Int32, Int32)
Устаревшие..

Записывает 32-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt64(IntPtr, Int32, Int64)

Записывает 64-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt64(IntPtr, Int64)

Записывает 64-разрядное целое число со знаком в неуправляемую память.

WriteInt64(Object, Int32, Int64)
Устаревшие..

Записывает 64-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteIntPtr(IntPtr, Int32, IntPtr)

Записывает целое число собственного размера процессора в неуправляемую память с указанным смещением.

WriteIntPtr(IntPtr, IntPtr)

Записывает целое число собственного размера процессора в неуправляемую память.

WriteIntPtr(Object, Int32, IntPtr)
Устаревшие..

Записывает целое число собственного размера процессора в неуправляемую память.

ZeroFreeBSTR(IntPtr)

Освобождает указатель BSTR, выделенный SecureStringToBSTR(SecureString) с помощью метода.

ZeroFreeCoTaskMemAnsi(IntPtr)

Освобождает неуправляемый указатель строки, выделенный с помощью SecureStringToCoTaskMemAnsi(SecureString) метода.

ZeroFreeCoTaskMemUnicode(IntPtr)

Освобождает неуправляемый указатель строки, выделенный с помощью SecureStringToCoTaskMemUnicode(SecureString) метода.

ZeroFreeCoTaskMemUTF8(IntPtr)

Освобождает неуправляемый указатель строки, выделенный с помощью StringToCoTaskMemUTF8(String) метода.

ZeroFreeGlobalAllocAnsi(IntPtr)

Освобождает неуправляемый указатель строки, выделенный с помощью SecureStringToGlobalAllocAnsi(SecureString) метода.

ZeroFreeGlobalAllocUnicode(IntPtr)

Освобождает неуправляемый указатель строки, выделенный с помощью SecureStringToGlobalAllocUnicode(SecureString) метода.

Применяется к