MacSynchronizeFunction

BOOLEAN
   MacSynchronizeFunction(
       IN PVOID SynchronizeContext
       );

MacSynchronizeFunction is called when a nonISR driver function calls NdisSynchronizeWithInterrupt.

Parameters

SynchronizeContext

Points to the context that the NIC driver associates with the synchronization, that is, to device state information, memory, or registers shared with the ISR.

Return Value

MacSynchronizeFunction returns a Boolean value to NdisSynchronizeWithInterrupt.

Comments

MacSynchronizeFunction synchronizes access to resources, such as state, device memory, or NIC registers, shared between nonISR driver functions and the driver’s MacInterruptServiceRoutine.

A MacSynchronizeFunction is the only nonISR driver-supplied function that can directly access such shared resources in a multiprocessor-safe way. Resources shared with the ISR are protected by a system-supplied interrupt spin lock that was set up when the driver originally called NdisInitializeInterrupt. The ISR can access shared resources without calling NdisSynchronizeWithInterrupt, but all other driver functions must call this function to have MacSynchronizeFunction access the same resources on their behalf.

MacSynchronizeFunction runs at the DIRQL assigned by the system when the driver called NdisInitializeInterrupt. Consequently, MacSynchronizeFunction can call only the small subset of NDIS library functions that MacInterruptServiceRoutine can call.

See Also

MacInterruptServiceRoutine, MiniportSynchronizeISR, NdisInitializeInterrupt, NdisSynchronizeWithInterrupt