⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sync.h

📁 网络驱动开发
💻 H
字号:
/*
 ************************************************************************
 *
 *	SYNC.H
 *
 * Copyright (C) 1997-1998 Microsoft Corporation. All Rights Reserved.
 *
 *
 *
 *************************************************************************
 */

typedef enum {
    SyncInsertHead,
    SyncInsertTail,
    SyncRemoveHead,
    SyncRemoveTail,
    SyncRemove
} SynchronizeCmd;

typedef struct {
    PLIST_ENTRY Head;
    PLIST_ENTRY Entry;
    SynchronizeCmd Command;
} SynchronizeList;

extern BOOLEAN SynchronizedListFunc(IN PVOID Context);

#define NDISSynchronizedInsertHeadList(head, entry, interrupt)                                      \
{                                                                                                   \
    SynchronizeList ListData;                                                                       \
                                                                                                    \
    ListData.Head = (head);                                                                         \
    ListData.Entry = (entry);                                                                       \
    ListData.Command = SyncInsertHead;                                                              \
    (void)NdisMSynchronizeWithInterrupt((interrupt), SynchronizedListFunc, &ListData);    \
}

#define NDISSynchronizedInsertTailList(head, entry, interrupt)                                       \
{                                                                                                   \
    SynchronizeList ListData;                                                                       \
                                                                                                    \
    ListData.Head = (head);                                                                         \
    ListData.Entry = (entry);                                                                       \
    ListData.Command = SyncInsertTail;                                                              \
    (void)NdisMSynchronizeWithInterrupt((interrupt), SynchronizedListFunc, &ListData);    \
}

#define NDISSynchronizedRemoveEntryList(entry, interrupt)                                           \
{                                                                                                   \
    SynchronizeList ListData;                                                                       \
                                                                                                    \
    ListData.Entry = (entry);                                                                       \
    ListData.Command = SyncRemove;                                                                  \
    (void)NdisMSynchronizeWithInterrupt((interrupt), SynchronizedListFunc, &ListData);    \
}

static PLIST_ENTRY __inline NDISSynchronizedRemoveHeadList(PLIST_ENTRY Head,
                                                           PNDIS_MINIPORT_INTERRUPT Interrupt)
{
    SynchronizeList ListData;                                                                       \

    ListData.Head = Head;
    ListData.Command = SyncRemoveHead;
    (void)NdisMSynchronizeWithInterrupt(Interrupt, SynchronizedListFunc, &ListData);

    return ListData.Entry;
}

static PLIST_ENTRY __inline NDISSynchronizedRemoveTailList(PLIST_ENTRY Head,
                                                           PNDIS_MINIPORT_INTERRUPT Interrupt)
{
    SynchronizeList ListData;                                                                       \

    ListData.Head = Head;
    ListData.Command = SyncRemoveTail;
    (void)NdisMSynchronizeWithInterrupt(Interrupt, SynchronizedListFunc, &ListData);

    return ListData.Entry;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -