NDISUIO_OPEN_CONTEXT (Windows Embedded CE 6.0)
1/6/2010
This structure represents the network device object when opened. It is allocated on processing ProtocolBindAdapter from NDIS and freed when all references to it are gone.
Syntax
typedef struct _NDISUIO_OPEN_CONTEXT {
LIST_ENTRYLink;
ULONG Flags;
ULONG RefCount;
NUIO_LOCK Lock;
PFILE_OBJECT pFileObject;
NDIS_HANDLE BindingHandle;
NDIS_HANDLE SendPacketPool;
NDIS_HANDLE SendBufferPool;
NDIS_HANDLE RecvPacketPool;
NDIS_HANDLE RecvBufferPool;
ULONG MacOptions;
ULONG MaxFrameSize;
LIST_ENTRY PendedWrites;
ULONG PendedSendCount;
#ifndef UNDER_CE
LIST_ENTRY PendedReads;
ULONG PendedReadCount;
#else
NDIS_EVENT ReadEvent;
BOOL bBlockingRead;
DWORD dwReadTimeOut;
#endif
LIST_ENTRY RecvPktQueue;
ULONG RecvPktCount;
NET_DEVICE_POWER_STATE PowerState;
NDIS_STRING DeviceName;
NDIS_STRING DeviceDescr;
NDIS_STATUS BindStatus;
NUIO_EVENT BindEvent;
#ifndef UNDER_CE
BOOLEAN bRunningOnWin9x;
#endif
#ifdef UNDER_CE
USHORT EthType;
#endif
ULONG oc_sig;
} NDISUIO_OPEN_CONTEXT, *PNDISUIO_OPEN_CONTEXT;
Members
- Link
Link to the global list.
Flags
State information. The following table shows the values for Flags.Flag Value NUIOO_BIND_IDLE
0x00000000
NUIOO_BIND_OPENING
0x00000001
NUIOO_BIND_FAILED
0x00000002
NUIOO_BIND_ACTIVE
0x00000004
NUIOO_BIND_CLOSING
0x00000008
NUIOO_BIND_FLAGS
0x0000000F
NUIOO_OPEN_IDLE
0x00000000
NUIOO_OPEN_ACTIVE
0x00000010
NUIOO_OPEN_FLAGS
0x000000F0
NUIOO_RESET_IN_PROGRESS
0x00000100
NUIOO_NOT_RESETTING
0x00000000
NUIOO_RESET_FLAGS
0x00000100
NUIOO_MEDIA_CONNECTED
0x00000000
NUIOO_MEDIA_DISCONNECTED
0x00000200
NUIOO_MEDIA_FLAGS
0x00000200
NUIOO_READ_SERVICING
0x00100000
NUIOO_READ_FLAGS
0x00100000
NUIOO_UNBIND_RECEIVED
0x10000000
NUIOO_UNBIND_FLAGS
0x10000000
- RefCount
Count of pended read IRPs, queued or incomplete write IRPs, and existence of binding.
- Lock
Indicates an NDISUIO lock.
- pFileObject
Pointer to the file assignment for the open device.
- BindingHandle
File handle for NDIS binding.
- SendPacketPool
File handle for the send packet pool.
- SendBufferPool
File handle for the send buffer.
- RecvPacketPool
File handle for the received packet pool.
- RecvBufferPool
File handle for the receive buffer.
- MacOptions
Media access options.
- MaxFrameSize
Maximum frame size permitted, in bytes.
- PendedWrites
Pended write IRP queue.
- PendedSendCount
Number of pended writes.
- PendedReads
Pended read IRP queue.
- PendedReadCount
Number of pended reads.
- ReadEvent
Event to trigger when bBlockingRead is TRUE.
- bBlockingRead
Boolean value indicating that ReadEvent has occurred.
- dwReadTimeOut
Amount of time to wait for incoming reads.
- RecvPktQueue
Not used.
- RecvPktCount
Not used.
- PowerState
Indication of the device power state.
- DeviceName
Name of the device used in NdisOpenAdapter.
- DeviceDescr
Friendly name of the DeviceName adapter.
- BindStatus
Existence of the bind status for the device designated by NdisOpenAdapter or NdisCloseAdapter.
- BindEvent
Notification event that adapter binding or unbinding is complete.
- bRunningOnWin9x
Not used.
EthType
Ethernet frame type of interest, which can be tuned for each adapter context. The following table shows the valid EthType values.EthType Value NUIO_ETH_TYPE
0x8001
NUIO_8021P_TAG_TYPE
0x0081
- oc_sig
Validation signature.
Remarks
While an NDIS binding exists, read I/O request packets (IRPs) are queued on this structure and processed when packets are received. If data arrives in the absence of a pended read, NDISUIO saves the contents of the latest packet received. If no binding exists, the read packet fails.
NDISUIO uses write IRPs to send data. Each write IRP maps to a single NDIS packet. Packet send-completion is mapped to write IRP completion. If no active binding exists, write IRPs fail.
Requirements
Header | nuiouser.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
NDIS Structures
ProtocolBindAdapter
NdisOpenAdapter
NdisCloseAdapter