Sdílet prostřednictvím


Overlapped.UnsafePack Metoda

Definice

Zabalí aktuální instanci do NativeOverlapped struktury. Nerozšíruje zásobník volání.

Přetížení

UnsafePack(IOCompletionCallback)
Zastaralé.
Zastaralé.
Zastaralé.

Zabalí aktuální instanci do NativeOverlapped struktury určující delegáta, který se má vyvolat po dokončení asynchronní vstupně-výstupní operace. Nerozšíruje zásobník volání.

UnsafePack(IOCompletionCallback, Object)

Zabalí aktuální instanci do NativeOverlapped struktury a určí delegáta, který se má vyvolat při dokončení asynchronní vstupně-výstupní operace a spravovaný objekt, který slouží jako vyrovnávací paměť. Nerozšíruje zásobník volání.

UnsafePack(IOCompletionCallback)

Zdroj:
Overlapped.cs
Zdroj:
Overlapped.cs
Zdroj:
Overlapped.cs

Upozornění

This method is not safe. Use UnsafePack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202

Upozornění

This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead.

Upozornění

This method is not safe. Use UnsafePack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Zabalí aktuální instanci do NativeOverlapped struktury určující delegáta, který se má vyvolat po dokončení asynchronní vstupně-výstupní operace. Nerozšíruje zásobník volání.

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>

Parametry

iocb
IOCompletionCallback

Delegát IOCompletionCallback , který představuje metodu zpětného volání vyvolanou při dokončení asynchronní vstupně-výstupní operace.

Návraty

Nespravovaný ukazatel na NativeOverlapped strukturu.

Atributy

Výjimky

Proud Overlapped už je zabalený.

Poznámky

Nespravovaný ukazatel vrácený touto metodou lze předat operačnímu systému v překrývajících se vstupně-výstupních operacích. Struktura NativeOverlapped je pevně ve fyzické paměti, dokud Unpack není volána.

Volající je zodpovědný za připnutí vyrovnávací paměti. Pokud je však doména aplikace uvolněna, popisovač připnuté vyrovnávací paměti je zničen a vyrovnávací paměť je uvolněna, takže vstupně-výstupní operace se zapíše na uvolněnou adresu. Z tohoto důvodu je lepší použít UnsafePack(IOCompletionCallback, Object) přetížení metody, ve kterém modul runtime připne vyrovnávací paměť.

Upozornění

Použití metody UnsafePack by mohlo neúmyslně otevřít bezpečnostní díru. Zabezpečení přístupu kódu je při kontrolách oprávnění založená na oprávněních všech volajících v zásobníku. Metoda UnsafePack nerozšíruje zásobník volání. Škodlivý kód může tuto možnost zneužít, aby se zabránilo kontrolám oprávnění.

Platí pro

UnsafePack(IOCompletionCallback, Object)

Zdroj:
Overlapped.cs
Zdroj:
Overlapped.cs
Zdroj:
Overlapped.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Zabalí aktuální instanci do NativeOverlapped struktury a určí delegáta, který se má vyvolat při dokončení asynchronní vstupně-výstupní operace a spravovaný objekt, který slouží jako vyrovnávací paměť. Nerozšíruje zásobník volání.

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>

Parametry

iocb
IOCompletionCallback

Delegát IOCompletionCallback , který představuje metodu zpětného volání vyvolanou při dokončení asynchronní vstupně-výstupní operace.

userData
Object

Objekt nebo pole objektů představujících vstupní nebo výstupní vyrovnávací paměť pro operaci. Každý objekt představuje vyrovnávací paměť, například pole bajtů.

Návraty

Nespravovaný ukazatel na NativeOverlapped strukturu.

Atributy

Výjimky

Volající nemá požadované oprávnění.

Aktuální je Overlapped už zabalený.

Poznámky

Nespravovaný ukazatel vrácený touto metodou lze předat operačnímu systému v překrývajících se vstupně-výstupních operacích. Struktura NativeOverlapped je pevně ve fyzické paměti, dokud Unpack není volána.

Vyrovnávací paměť nebo vyrovnávací paměti zadané v userData souboru musí být stejné jako vyrovnávací paměti předané nespravované funkci operačního systému, která provádí asynchronní vstupně-výstupní operace.

Modul runtime zapíná vyrovnávací paměť nebo vyrovnávací paměti zadané vuserData po dobu trvání vstupně-výstupní operace. Pokud se doména aplikace uvolní, modul runtime zachová paměť připnutou, dokud se nedokončí vstupně-výstupní operace.

Upozornění

Použití metody UnsafePack by mohlo neúmyslně otevřít bezpečnostní díru. Zabezpečení přístupu kódu je při kontrolách oprávnění založená na oprávněních všech volajících v zásobníku. Metoda UnsafePack nerozšíruje zásobník volání. Škodlivý kód může tuto možnost zneužít, aby se zabránilo kontrolám oprávnění.

Platí pro