SafeBuffer.AcquirePointer(Byte*) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.