Partager via


SafeBuffer.AcquirePointer(Byte*) Méthode

Définition

Important

Cette API n’est pas conforme CLS.

Obtient un pointeur à partir d'un objet SafeBuffer pour un bloc de mémoire.

public:
 void AcquirePointer(System::Byte* % pointer);
[System.CLSCompliant(false)]
public void AcquirePointer (ref byte* pointer);
[<System.CLSCompliant(false)>]
member this.AcquirePointer : Byte* -> unit

Paramètres

pointer
Byte*

Pointeur d'octet, passé par référence, pour recevoir le pointeur à partir de l'objet SafeBuffer. Vous devez affecter la valeur null à ce pointeur avant d'appeler cette méthode.

Attributs

Exceptions

La méthode Initialize n'a pas été appelée.

Remarques

Lors AcquirePointer des retours, vous devez effectuer la vérification des limites en vérifiant que le pointer paramètre est null. Si ce n’est pas null, vous devez appeler la SafeBuffer.ReleasePointer méthode dans une région d’exécution contrainte (CER).

AcquirePointer appelle la SafeHandle.DangerousAddRef méthode et expose le pointeur.

L’exemple suivant montre comment utiliser la AcquirePointer méthode :

byte* pointer = null;  
RuntimeHelpers.PrepareConstrainedRegions();  
try {  
    MySafeBuffer.AcquirePointer(ref pointer);  
    // Use pointer here, with your own bounds checking.  
    }  
finally {  
    if (pointer != null)  
        MySafeBuffer.ReleasePointer();  
    }  

Si vous castez pointer (qui est un pointeur vers un octet) en tant que pointeur vers un autre type (T*), vous pouvez rencontrer des problèmes d’alignement de pointeur.

Vous devez assumer la responsabilité de toutes les vérifications de limites avec ce pointeur.

S’applique à