NDIS_RW_LOCK structure

The NDIS_RW_LOCK structure defines the attributes of a read/write lock. This structure is opaque to NDIS drivers and is reserved for NDIS.

Syntax

typedef struct _NDIS_RW_LOCK {
  union {
    struct {
      KSPIN_LOCK SpinLock;
      PVOID      Context;
    };
    UCHAR Reserved[16];
  };
  union {
    struct {
      KSPIN_LOCK SpinLock;
      PVOID      Context;
    };
    UCHAR Reserved[16];
  };
  union {
    NDIS_RW_LOCK_REFCOUNT RefCount[MAXIMUM_PROCESSORS];
    ULONG                 *RefCountEx[sizeof(NDIS_RW_LOCK_REFCOUNT)/ sizeof(ULONG) MAXIMUM_PROCESSORS];
    struct {
      KSPIN_LOCK RefCountLock;
      ULONG      SharedRefCount;
      BOOLEAN    WriterWaiting;
    };
  };
  union {
    NDIS_RW_LOCK_REFCOUNT RefCount[MAXIMUM_PROCESSORS];
    ULONG                 *RefCountEx[sizeof(NDIS_RW_LOCK_REFCOUNT)/ sizeof(ULONG) MAXIMUM_PROCESSORS];
    struct {
      KSPIN_LOCK RefCountLock;
      ULONG      SharedRefCount;
      BOOLEAN    WriterWaiting;
    };
  };
} NDIS_RW_LOCK, *PNDIS_RW_LOCK;

Members

SpinLock

Context

Reserved

SpinLock

Context

Reserved

RefCount

RefCountEx

RefCountLock

SharedRefCount

WriterWaiting

RefCount

RefCountEx

RefCountLock

SharedRefCount

WriterWaiting

Requirements

   
Minimum supported client Supported in NDIS 6.0 and 6.1. For NDIS 6.20 and later, use NDIS_RW_LOCK_EX instead.
Header ndis.h (include Ndis.h)

See Also

NDIS_RW_LOCK_EX