CmFcpWorkItemQueueWork
NTSTATUS __stdcall CmFcpWorkItemQueueWork(PWORK_QUEUE_ITEM WorkItem){
NTSTATUS result;
result = _InterlockedExchange((volatile __int32 *)&WorkItem[1].List.Blink, 3);
if( (result & 1) == 0 )
{
ExAcquireRundownProtection((PEX_RUNDOWN_REF)&WorkItem[1]);
ExQueueWorkItem(WorkItem, SHIDWORD(WorkItem[1].List.Blink));
}
return result;
}Referenced by:
CmFcManagerNotifyFeatureUsage
CmFcManagerRegisterFeatureConfigurationChangeNotification
CmFcpManagerDrainUsageNotificationsDpc
CmFcpManagerPublishChangeNotifications
CmFcpManagerRetryUsageNotificationsTimerRoutine