NdisInitializeReadWriteLock 函数 (ndis.h)
NdisInitializeReadWriteLock 函数初始化 NDIS_RW_LOCK类型的读或写锁变量。
语法
void NdisInitializeReadWriteLock(
[out] PNDIS_RW_LOCK Lock
);
参数
[out] Lock
指向表示锁的不透明 NDIS_RW_LOCK 变量的指针。 调用方可以使用此锁来获取对非 ISR 驱动程序线程之间共享的资源的写入或读取访问权限。
返回值
没有
言论
NDIS_RW_LOCK 变量用于一次将共享资源的写入访问权限限制为一个非 ISR 驱动程序线程。 此 NDIS_RW_LOCK 可以允许多个非 ISR 驱动程序线程对这些资源进行并发读取访问。 写入访问期间不允许此类读取访问。
传递给 NdisInitializeReadWriteLock 的 Lock 指针是所有其他 Ndis 的必需参数。ReadWriteLock 函数。
在驱动程序调用 NdisAcquireReadWriteLock 函数以获取对资源的写入或读取访问权限之前,驱动程序必须调用 NdisInitializeReadWriteLock 来初始化与该资源关联的锁。 调用方必须在锁定 为变量提供非分页存储。
调用 NdisInitializeReadWriteLock后,驱动程序可以调用 NdisAcquireReadWriteLock 以获取对资源的写入或读取访问权限。 一次只能有一个非 ISR 驱动程序线程获取对资源的写入访问权限。 当一个非 ISR 线程具有写入访问权限时,其他非 ISR 线程的所有读取和写入访问都必须等待,直到写入访问持有者释放锁。 但是,如果非 ISR 线程具有读取访问权限,则其他非 ISR 线程可以同时获取读取访问权限。
对经常访问的资源初始化并使用这种类型的锁进行读取和不经常访问以写入。
资源访问完成后,驱动程序将调用 NdisReleaseReadWriteLock 函数。
驱动程序初始化的每个锁执行以下作之一:
- 保护在 IRQL <= DISPATCH_LEVEL 上运行的驱动程序线程同时进行写入和读取访问的一组离散共享资源。
- 公开一组离散的共享资源,供在 IRQL <= DISPATCH_LEVEL 运行的驱动程序线程同时读取访问。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 已弃用 NDIS 6.20 及更高版本的驱动程序,该驱动程序应使用 NdisAllocateRWLock 而不是 NdisInitializeReadWriteLock。 Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisInitializeReadWriteLock (NDIS 5.1)。 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisInitializeReadWriteLock (NDIS 5.1)。 |
目标平台 | 普遍 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
DLL | Ndis.sys |
IRQL | 任何级别 (请参阅“备注”部分) |