Go to the source code of this file.
◆ NdisAcquireReadWriteLock()
Definition at line 40 of file control.c.
50{
52 UCHAR ProcessorNumber;
53 volatile UCHAR BusyLoop;
54
56
60 } else {
62
65
66 while (
Lock->RefCount[ProcessorNumber].RefCount != 0) {
67 for (BusyLoop = 32; BusyLoop--; )
68 ;
69 }
70 }
71 }
74 }
75 } else {
78
79 if (
Lock->SpinLock != 0) {
80 if (RefCount == 1) {
82
87 }
88 }
89 }
92 }
93}
#define InterlockedIncrement
#define PsGetCurrentThread()
#define KeRaiseIrql(irql, oldIrql)
#define KeAcquireSpinLock(sl, irql)
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock IN PNDIS_RW_LOCK IN PLOCK_STATE LockState
_Acquires_exclusive_lock_ Lock _In_ BOOLEAN fWrite
FORCEINLINE ULONG KeGetCurrentProcessorNumber(VOID)
#define KeAcquireSpinLockAtDpcLevel(SpinLock)
#define KeReleaseSpinLockFromDpcLevel(SpinLock)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
◆ NdisAcquireSpinLock()
Definition at line 135 of file control.c.
142{
144}
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
◆ NdisAllocateSpinLock()
Definition at line 152 of file control.c.
159{
161}
#define KeInitializeSpinLock(sl)
◆ NdisDprAcquireSpinLock()
◆ NdisDprReleaseSpinLock()
◆ NdisFreeSpinLock()
◆ NdisInitializeEvent()
◆ NdisInitializeReadWriteLock()
Definition at line 20 of file control.c.
29{
31
33}
#define RtlZeroMemory(Destination, Length)
◆ NdisReleaseReadWriteLock()
Definition at line 100 of file control.c.
109{
111 case 2:
112 return;
113
114 case 3:
119 return;
120
121 case 4:
125 return;
126 }
127}
#define KeReleaseSpinLock(sl, irql)
#define KeLowerIrql(oldIrql)
◆ NdisReleaseSpinLock()
◆ NdisResetEvent()
◆ NdisSetEvent()
◆ NdisWaitEvent()