Freigeben über


Overlapped.UnsafePack Methode

Definition

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.

Gilt für: