RtnInitializeCriticalLock
RtnInitializeCriticalLock initializes a CriticalLock data structure.
IMPORTANT! It is NOT safe to nest CritcalLocks.
Syntax
VOID RtnInitializeCriticalLock(
CriticalLock *pLock
);
Parameters
pLock
Pointer to a critical lock data structure
Return Value
None.
Remarks
CriticalLock data structures must be initialized once before RtnEnterCriticalLock and RtnLeaveCriticalLock can be used. Typically in device drivers, all CriticalLock structures are initialized in RtndConfigure.
Since the individual NAL NIC Drivers operate as RTDLLs, the process context at any given time is not determined. Because of this, normal synchronization mechanisms such as critical sections or semaphores are difficult to use. The CriticalLock structure is guaranteed to work across all process and thread boundaries and so can be used to synchronize hardware access within NAL NIC Drivers without having to deal with process local handles (such as those used by RTX64 critical sections and semaphores).
Requirements
Minimum Supported Version |
RTX64 2013 NOTE: RTX64 Network Abstraction Layer (NAL) support requires RTX64 4.0 or later |
Header |
rtnapi.h |
Library |
To use with the NAL: RTX64Nal.lib To use with the TCP/IP Stack: RtTcpip.lib |