1. 原子访问:Interlocked系列函数——Interlocked系列函数会以原子方式来操控一个值。 
 // 传一个长整形变量的地址和另一个增量值,函数就会保证递增操作是以原子方式进行的。
// 传一个长整形变量的地址和另一个增量值,函数就会保证递增操作是以原子方式进行的。
 LONG InterlockedExchangeAdd(PLONG volatile plAddend,LONG lIncrement);
LONG InterlockedExchangeAdd(PLONG volatile plAddend,LONG lIncrement);

 LONGLONG InterlockedExchangeAdd64(PLONGLONG volatile pllAddend,LONGLONG llIncrement);
LONGLONG InterlockedExchangeAdd64(PLONGLONG volatile pllAddend,LONGLONG llIncrement);

 //InterlockedIncrement函数以原子方式给一个值加1。
//InterlockedIncrement函数以原子方式给一个值加1。
 LONG InterlockedIncrement(IN PLONG Addend);
LONG InterlockedIncrement(IN PLONG Addend);

 //InterlockedExchange和InterlockedExchangePointer会把第一个参数所指向的内存地址的当前值,以原子方式替换为第二个参数指定的值。
//InterlockedExchange和InterlockedExchangePointer会把第一个参数所指向的内存地址的当前值,以原子方式替换为第二个参数指定的值。
 LONG InterlockedExchange(OUT PLONG Target,IN LONG Value);
LONG InterlockedExchange(OUT PLONG Target,IN LONG Value);

 LONGLONG InterlockedExchange64(PLONGLONG volatile plTarget,LONGLONG lValue);
LONGLONG InterlockedExchange64(PLONGLONG volatile plTarget,LONGLONG lValue);

 PVOID InterlockedExchangePointer(PVOID* volatile ppvTarget,PVOID pvValue);
PVOID InterlockedExchangePointer(PVOID* volatile ppvTarget,PVOID pvValue);
 //这两个函数都会返回原来的值。
//这两个函数都会返回原来的值。


 // InterlockedCompareExchange和InterlockedCompareExchangePointer函数以原子方式执行一个测试和设置操作。
// InterlockedCompareExchange和InterlockedCompareExchangePointer函数以原子方式执行一个测试和设置操作。
 PVOID InterlockedCompareExchange(PLONG plDestination,LONG lExchange,LONG lComparand);
PVOID InterlockedCompareExchange(PLONG plDestination,LONG lExchange,LONG lComparand);

 PVOID InterlockedCompareExchangePointer(PVOID* ppvDestination,PVOID pvExchange,PVOID pvComparand);
PVOID InterlockedCompareExchangePointer(PVOID* ppvDestination,PVOID pvExchange,PVOID pvComparand);
C运行库提供了一个_aligned_malloc函数,我们可以使用这个函数来分配一块对齐过的内存:
 void * _aligned_malloc(size_t size,size_t alignment);
void * _aligned_malloc(size_t size,size_t alignment);
 // size表示要分配的字节数。
// size表示要分配的字节数。
 // alignment表示要对齐到的字节边界,传给alignment参数的值必须是2的整数幂次方
// alignment表示要对齐到的字节边界,传给alignment参数的值必须是2的整数幂次方InitializeSListHead    // 创建一个空栈 
InterlockedPushEntrySList  // 在栈顶添加一个元素
InterlockedPopEntrySList    // 移除位于栈顶的元素并将它返回
InterlockedFlushSList     // 清空栈
QueryDepthSList    // 返回栈中元素的数量