Overlapped.UnsafePack Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Упаковывает текущий экземпляр в структуру NativeOverlapped. Не передает вызывающий стек.
Перегрузки
UnsafePack(IOCompletionCallback) |
Устаревшие..
Устаревшие..
Устаревшие..
Помещает текущий экземпляр в структуру NativeOverlapped, определяющую делегата, вызываемого при завершении асинхронной операции ввода-вывода. Не передает вызывающий стек. |
UnsafePack(IOCompletionCallback, Object) |
Упаковывает текущий экземпляр в структуру NativeOverlapped, определяющую вызываемого делегата, когда асинхронная операция вывода-ввода завершается и управляемый объект, который служит буфером. Не передает вызывающий стек. |
UnsafePack(IOCompletionCallback)
- Исходный код:
- Overlapped.cs
- Исходный код:
- Overlapped.cs
- Исходный код:
- Overlapped.cs
Внимание!
This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202
Внимание!
This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.
Внимание!
This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202
Важно!
Этот API несовместим с CLS.
Помещает текущий экземпляр в структуру NativeOverlapped, определяющую делегата, вызываемого при завершении асинхронной операции ввода-вывода. Не передает вызывающий стек.
public:
System::Threading::NativeOverlapped* UnsafePack(System::Threading::IOCompletionCallback ^ iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb);
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
[<System.Security.SecurityCritical>]
member this.UnsafePack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
Параметры
- iocb
- IOCompletionCallback
Делегат IOCompletionCallback, который представляет метод обратного вызова, когда асинхронная операция ввода-вывода завершается.
Возвращаемое значение
Неуправляемый указатель на структуру NativeOverlapped.
- Атрибуты
Исключения
Текущий объект Overlapped уже упакован.
Комментарии
Неуправляемый указатель, возвращаемый этим методом, можно передать операционной системе в перекрывающихся операциях ввода-вывода. Структура NativeOverlapped фиксируется в физической памяти до вызова Unpack .
Вызывающий объект отвечает за закрепление буфера. Однако если домен приложения выгружается, дескриптор закрепленного буфера уничтожается и буфер освобождается, в результате чего операция ввода-вывода выполняет запись на освобожденный адрес. По этой причине лучше использовать перегрузку UnsafePack(IOCompletionCallback, Object) метода, при которой среда выполнения закрепляет буфер.
Внимание!
UnsafePack Использование метода может непреднамеренно открыть дыру в безопасности. Безопасность доступа к коду основывает свои проверки разрешений на разрешениях всех вызывающих объектов в стеке. Метод UnsafePack не распространяет вызывающий стек. Вредоносный код может воспользоваться этим, чтобы избежать проверок разрешений.
Применяется к
UnsafePack(IOCompletionCallback, Object)
- Исходный код:
- Overlapped.cs
- Исходный код:
- Overlapped.cs
- Исходный код:
- Overlapped.cs
Важно!
Этот API несовместим с CLS.
Упаковывает текущий экземпляр в структуру NativeOverlapped, определяющую вызываемого делегата, когда асинхронная операция вывода-ввода завершается и управляемый объект, который служит буфером. Не передает вызывающий стек.
public:
System::Threading::NativeOverlapped* UnsafePack(System::Threading::IOCompletionCallback ^ iocb, System::Object ^ userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback? iocb, object? userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* UnsafePack (System.Threading.IOCompletionCallback iocb, object userData);
[<System.CLSCompliant(false)>]
member this.UnsafePack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.UnsafePack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
member this.UnsafePack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
Параметры
- iocb
- IOCompletionCallback
Делегат IOCompletionCallback, который представляет метод обратного вызова, когда асинхронная операция ввода-вывода завершается.
- userData
- Object
Объект или массив объектов, представляющие буфер ввода или вывода для данной операции. Каждый объект представляет буфер, например, массив байтов.
Возвращаемое значение
Неуправляемый указатель на структуру NativeOverlapped.
- Атрибуты
Исключения
У вызывающего объекта отсутствует необходимое разрешение.
Текущий объект Overlapped уже упакован.
Комментарии
Неуправляемый указатель, возвращаемый этим методом, можно передать операционной системе в перекрывающихся операциях ввода-вывода. Структура NativeOverlapped фиксируется в физической памяти до вызова Unpack .
Буфер или буферы, указанные в , userData
должны совпадать с буферами, передаваемыми в неуправляемую функцию операционной системы, которая выполняет асинхронный ввод-вывод.
Среда выполнения закрепляет буфер или буферы, указанные в , наuserData
время операции ввода-вывода. Если домен приложения выгружен, среда выполнения сохраняет память закрепленной до завершения операции ввода-вывода.
Внимание!
UnsafePack Использование метода может непреднамеренно открыть дыру в безопасности. Безопасность доступа к коду основывает свои проверки разрешений на разрешениях всех вызывающих объектов в стеке. Метод UnsafePack не распространяет вызывающий стек. Вредоносный код может воспользоваться этим, чтобы избежать проверок разрешений.