Macro NdisInterlockedAddUlong (ndis.h)
A função NdisInterlockedAddUlong adiciona um valor longo sem sinal a um determinado inteiro sem sinal como uma operação atômica, usando um bloqueio de rotação fornecido pelo chamador para sincronizar o acesso à variável de inteiro.
Sintaxe
void NdisInterlockedAddUlong(
[in] _Addend,
[in] _Increment,
[in] _SpinLock
);
Parâmetros
[in] _Addend
Um ponteiro para a variável para a qual o valor deve ser ajustado pelo incremento fornecido.
[in] _Increment
O valor a ser adicionado a esse em Addend .
[in] _SpinLock
Um ponteiro para um bloqueio de rotação inicializado pelo chamador.
Retornar valor
Nenhum
Comentários
O chamador de NdisInterlockedAddUlong deve fornecer armazenamento residente para o bloqueio de rotação, que deve ser inicializado com a função NdisAllocateSpinLock antes da chamada inicial para NdisInterlockedAddUlong.
O valor SpinLock passado para a função NdisInterlockedAddUlong é usado para garantir que a adição à variável no parâmetro Addend seja atômica em relação a quaisquer outras operações na mesma variável que sincronizam com o mesmo bloqueio de rotação.
NdisInterlockedAddUlong eleva o IRQL para DISPATCH_LEVEL quando ele adquire o bloqueio de rotação especificado e restaura o IRQL original antes de retornar o controle. Consequentemente, qualquer função de driver que chame NdisInterlockedAddUlong não pode ser um código paginável.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisInterlockedAddUlong (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisInterlockedAddUlong (NDIS 5.1)) no Windows XP. |
Plataforma de Destino | Universal |
Cabeçalho | ndis.h (inclua Ndis.h) |
Biblioteca | Ndis.lib |
IRQL | Qualquer nível |