Condividi tramite


Funzione VideoPortInterlockedExchange (video.h)

La funzione VideoPortInterlockedExchange blocca o sblocca un blocco di memoria impostando rispettivamente una variabile di blocco definita dall'utente su TRUE o FALSE. Restituisce il valore precedentemente mantenuto della variabile di blocco.

Sintassi

VIDEOPORT_API LONG VideoPortInterlockedExchange(
  [in, out] IN OUT PLONG Target,
  [in]      IN LONG      Value
);

Parametri

[in, out] Target

Puntatore a una variabile di blocco definita dall'utente usata per controllare l'accesso a un buffer di memoria.

[in] Value

Specifica il valore da archiviare in Target, che indica se il buffer di memoria deve essere bloccato o sbloccato. Usare TRUE per bloccare il buffer di memoria e FALSE per sbloccare il buffer di memoria.

Valore restituito

VideoPortInterlockedExchange restituisce il valore di Target precedente alla chiamata di funzione.

Commenti

VideoPortInterlockedExchange può essere usato per impedire la contesa di buffer comune DMA in sistemi a più processori.

Quando il buffer non viene letto o scritto in , la variabile di blocco deve avere un valore FALSE. Una chiamata successiva a VideoPortInterlockedExchange con il relativo parametro Target impostato su TRUE reimposta la variabile di blocco su TRUE, dopo la quale questa funzione restituisce FALSE. Il buffer è ora bloccato, impedendo l'accesso da altri thread. Al termine delle operazioni correnti sul buffer, sbloccare il buffer con una chiamata a VideoPortInterlockedExchange con il relativo parametro Target impostato su FALSE.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione video.h (include Video.h)
Libreria Videoprt.lib
DLL Videoprt.sys
IRQL Qualsiasi livello

Vedi anche

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement