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

Lorsque AcquirePointer les retours sont retournés, 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. Contrairement à la Read méthode, elle ne modifie pas la position actuelle du 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 la vérification de toutes les limites avec ce pointeur.

S’applique à