Overlapped.UnsafePack Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Packt die aktuelle Instanz in eine NativeOverlapped-Struktur. Gibt den aufrufenden Stapel nicht weiter.
Überlädt
UnsafePack(IOCompletionCallback) |
Veraltet.
Veraltet.
Veraltet.
Packt die aktuelle Instanz in eine NativeOverlapped-Struktur und gibt den Delegaten an, der aufgerufen werden soll, wenn der asynchrone E/A-Vorgang abgeschlossen ist. Gibt den aufrufenden Stapel nicht weiter. |
UnsafePack(IOCompletionCallback, Object) |
Packt die aktuelle Instanz in eine NativeOverlapped-Struktur, und gibt einen Delegaten, der aufgerufen werden soll, wenn der asynchrone E/A-Vorgang abgeschlossen ist, und ein verwaltetes Objekt an, das als Puffer dient. Gibt den aufrufenden Stapel nicht weiter. |
UnsafePack(IOCompletionCallback)
- Quelle:
- Overlapped.cs
- Quelle:
- Overlapped.cs
- Quelle:
- Overlapped.cs
Achtung
This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202
Achtung
This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.
Achtung
This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202
Wichtig
Diese API ist nicht CLS-kompatibel.
Packt die aktuelle Instanz in eine NativeOverlapped-Struktur und gibt den Delegaten an, der aufgerufen werden soll, wenn der asynchrone E/A-Vorgang abgeschlossen ist. Gibt den aufrufenden Stapel nicht weiter.
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>
Parameter
- iocb
- IOCompletionCallback
Ein IOCompletionCallback-Delegat, der die Rückrufmethode darstellt, die aufgerufen wird, wenn der asynchrone E/A-Vorgang abgeschlossen ist.
Gibt zurück
Ein nicht verwalteter Zeiger auf eine NativeOverlapped-Struktur.
- Attribute
Ausnahmen
Die aktuelle Overlapped-Klasse wurde bereits gepackt.
Hinweise
Der von dieser Methode zurückgegebene nicht verwaltete Zeiger kann in überlappenden E/A-Vorgängen an das Betriebssystem übergeben werden. Die NativeOverlapped Struktur wird im physischen Arbeitsspeicher behoben, bis Unpack sie aufgerufen wird.
Der Aufrufer ist für das Anheften des Puffers verantwortlich. Wenn die Anwendungsdomäne jedoch entladen wird, wird das Handle für den angehefteten Puffer zerstört, und der Puffer wird freigegeben, sodass der E/A-Vorgang in die freigegebene Adresse schreiben kann. Aus diesem Grund ist es besser, die UnsafePack(IOCompletionCallback, Object) Methodenüberladung zu verwenden, bei der die Runtime den Puffer anheftet.
Achtung
Die Verwendung der UnsafePack -Methode könnte versehentlich eine Sicherheitslücke öffnen. Die Codezugriffssicherheit basiert bei ihren Berechtigungsprüfungen auf den Berechtigungen aller Aufrufer auf dem Stapel. Die UnsafePack -Methode gibt den aufrufenden Stapel nicht weiter. Böswilliger Code kann dies möglicherweise ausnutzen, um Berechtigungsprüfungen zu vermeiden.
Gilt für:
UnsafePack(IOCompletionCallback, Object)
- Quelle:
- Overlapped.cs
- Quelle:
- Overlapped.cs
- Quelle:
- Overlapped.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Packt die aktuelle Instanz in eine NativeOverlapped-Struktur, und gibt einen Delegaten, der aufgerufen werden soll, wenn der asynchrone E/A-Vorgang abgeschlossen ist, und ein verwaltetes Objekt an, das als Puffer dient. Gibt den aufrufenden Stapel nicht weiter.
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>
Parameter
- iocb
- IOCompletionCallback
Ein IOCompletionCallback-Delegat, der die Rückrufmethode darstellt, die aufgerufen wird, wenn der asynchrone E/A-Vorgang abgeschlossen ist.
- userData
- Object
Ein Objekt oder ein Objektarray, das den Eingabe- oder den Ausgabepuffer für den Vorgang darstellt. Jedes Objekt stellt einen Puffer dar, z. B. ein Array von Bytes.
Gibt zurück
Ein nicht verwalteter Zeiger auf eine NativeOverlapped-Struktur.
- Attribute
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Die aktuelle Overlapped-Klasse ist bereits gepackt.
Hinweise
Der von dieser Methode zurückgegebene nicht verwaltete Zeiger kann in überlappenden E/A-Vorgängen an das Betriebssystem übergeben werden. Die NativeOverlapped Struktur wird im physischen Arbeitsspeicher behoben, bis Unpack sie aufgerufen wird.
Der in userData
angegebene Puffer oder puffer muss mit denen identisch sein, die an die nicht verwaltete Betriebssystemfunktion übergeben werden, die die asynchrone E/A ausführt.
Die Laufzeit heftet den bzw. die inuserData
angegebenen Puffer für die Dauer des E/A-Vorgangs an. Wenn die Anwendungsdomäne entladen wird, bleibt der Arbeitsspeicher von der Runtime so lange angeheftet, bis der E/A-Vorgang abgeschlossen ist.
Achtung
Die Verwendung der UnsafePack -Methode könnte versehentlich eine Sicherheitslücke öffnen. Die Codezugriffssicherheit basiert bei ihren Berechtigungsprüfungen auf den Berechtigungen aller Aufrufer auf dem Stapel. Die UnsafePack -Methode gibt den aufrufenden Stapel nicht weiter. Böswilliger Code kann dies möglicherweise ausnutzen, um Berechtigungsprüfungen zu vermeiden.