Compartir a través de


Función ExInterlockedAddLargeInteger (wdm.h)

La rutina ExInterlockedAddLargeInteger agrega un valor entero grande a la variable especificada como una operación atómica.

Sintaxis

LARGE_INTEGER ExInterlockedAddLargeInteger(
  [in, out] PLARGE_INTEGER Addend,
  [in]      LARGE_INTEGER  Increment,
  [in, out] PKSPIN_LOCK    Lock
);

Parámetros

[in, out] Addend

Puntero a la variable que se va a ajustar mediante el valor de incremento.

[in] Increment

Especifica un valor que se va a agregar a Addend .

[in, out] Lock

Puntero a un bloqueo de número que se va a usar para sincronizar el acceso a addend.

Valor devuelto

ExInterlockedAddLargeInteger devuelve el valor inicial del parámetro Addend de .

Observaciones

Se supone que las rutinas de soporte técnico que realizan operaciones interbloqueadas no pueden provocar un error de página. Es decir, ni su código ni ninguno de los datos que tocan pueden provocar un error de página sin bajar el sistema. Usan bloqueos de número para lograr atomicidad en máquinas de varios procesadores simétricos. El autor de la llamada debe proporcionar almacenamiento residente para el de bloqueo de, que se debe inicializar con KeInitializeSpinLock antes de la llamada inicial a un Xxx.

El Lock pasado a ExInterlockedAddLargeInteger se usa para asegurarse de que la operación de adición en Addend es atómica con respecto a cualquier otra operación en el mismo valor que se sincronice con este mismo bloqueo de giro.

exInterlockedAddLargeInteger enmascara las interrupciones. Por lo tanto, se puede usar para la sincronización entre un ISR y otro código de controlador de dispositivo, siempre que la misma Lock nunca se reutilice en una llamada a una rutina que se ejecuta en IRQL = DISPATCH_LEVEL.

Tenga en cuenta que se garantiza que las llamadas a Xxx interbloqueadas sean atómicas con respecto a otras llamadas de interbloqueadasxxx sin bloqueos de giro proporcionados por el autor de la llamada.

Los autores de llamadas de ExInterlockedAddLargeInteger se ejecutan en cualquier IRQL. El almacenamiento del parámetro Addend debe estar residente en todas las IRQL.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows 2000 y versiones posteriores de Windows. No está disponible en Windows 98 o Windows Me.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel (consulte la sección Comentarios)

Consulte también

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement

keInitializeSpinLock