| Data Fields | 
| PDEVICE_EXTENSION | DeviceExtension | 
| NDIS_HANDLE | AdapterHandle | 
|  | NDIS idetifier of the adapter used by this instance. 
 | 
| UINT | Medium | 
| NDIS_HANDLE | PacketPool | 
|  | Pool of NDIS_PACKET structures used to transfer the packets from and to the NIC driver. 
 | 
| KSPIN_LOCK | RequestSpinLock | 
|  | SpinLock used to synchronize the OID requests. 
 | 
| LIST_ENTRY | RequestList | 
|  | List of pending OID requests. 
 | 
| LIST_ENTRY | ResetIrpList | 
|  | List of pending adapter reset requests. 
 | 
| INTERNAL_REQUEST | Requests [MAX_REQUESTS] | 
|  | Array of structures that wrap every single OID request. 
 | 
| PMDL | BufferMdl | 
|  | Pointer to a Memory descriptor list (MDL) that maps the circular buffer's memory. 
 | 
| PKEVENT | ReadEvent | 
|  | Pointer to the event on which the read calls on this instance must wait. 
 | 
| PUCHAR | bpfprogram | 
| UINT | MinToCopy | 
| LARGE_INTEGER | TimeOut | 
| int | mode | 
|  | Working mode of the driver. See PacketSetMode() for details. 
 | 
| LARGE_INTEGER | Nbytes | 
|  | Amount of bytes accepted by the filter when this instance is in statistical mode. 
 | 
| LARGE_INTEGER | Npackets | 
|  | Number of packets accepted by the filter when this instance is in statistical mode. 
 | 
| NDIS_SPIN_LOCK | CountersLock | 
|  | SpinLock that protects the statistical mode counters. 
 | 
| UINT | Nwrites | 
| ULONG | Multiple_Write_Counter | 
|  | Counts the number of times a single write has already physically repeated. 
 | 
| NDIS_EVENT | WriteEvent | 
|  | Event used to synchronize the multiple write process. 
 | 
| BOOLEAN | WriteInProgress | 
| NDIS_SPIN_LOCK | WriteLock | 
|  | SpinLock that protects the WriteInProgress variable. 
 | 
| NDIS_EVENT | NdisRequestEvent | 
|  | Event used to synchronize I/O requests with the callback structure of NDIS. 
 | 
| BOOLEAN | SkipSentPackets | 
|  | True if this instance should not capture back the packets that it transmits. 
 | 
| NDIS_STATUS | IOStatus | 
|  | Maintains the status of and OID request call, that will be passed to the application. 
 | 
| HANDLE | DumpFileHandle | 
|  | Handle of the file used in dump mode. 
 | 
| PFILE_OBJECT | DumpFileObject | 
|  | Pointer to the object of the file used in dump mode. 
 | 
| PKTHREAD | DumpThreadObject | 
|  | Pointer to the object of the thread used in dump mode. 
 | 
| HANDLE | DumpThreadHandle | 
|  | Handle of the thread created by dump mode to asynchronously move the buffer to disk. 
 | 
| NDIS_EVENT | DumpEvent | 
|  | Event used to synchronize the dump thread with the tap when the instance is in dump mode. 
 | 
| LARGE_INTEGER | DumpOffset | 
|  | Current offset in the dump file. 
 | 
| UNICODE_STRING | DumpFileName | 
|  | String containing the name of the dump file. 
 | 
| UINT | MaxDumpBytes | 
| UINT | MaxDumpPacks | 
| BOOLEAN | DumpLimitReached | 
| NDIS_SPIN_LOCK | MachineLock | 
|  | SpinLock that protects the BPF filter and the TME engine, if in use. 
 | 
| UINT | MaxFrameSize | 
| CpuPrivateData | CpuData [sizeof(KAFFINITY)*8] | 
|  | Pool of kernel buffer structures, one for each CPU. 
 | 
| ULONG | ReaderSN | 
|  | Sequence number of the next packet to be read from the pool of kernel buffers. 
 | 
| ULONG | WriterSN | 
| ULONG | Size | 
|  | Size of each kernel buffer contained in the CpuData field. 
 | 
| ULONG | AdapterHandleUsageCounter | 
| NDIS_SPIN_LOCK | AdapterHandleLock | 
| ULONG | AdapterBindingStatus | 
|  | Specifies if NPF is still bound to the adapter used by this instance, it's unbinding or it's not bound. 
 | 
| NDIS_EVENT | NdisOpenCloseCompleteEvent | 
| NDIS_EVENT | NdisWriteCompleteEvent | 
|  | Event that is signalled when all the packets have been successfully sent by NdisSend (and corresponfing sendComplete has been called). 
 | 
| NTSTATUS | OpenCloseStatus | 
| ULONG | TransmitPendingPackets | 
|  | Specifies the number of packets that are pending to be transmitted, i.e. have been submitted to NdisSendXXX but the SendComplete has not been called yet. 
 | 
| ULONG | NumPendingIrps | 
| BOOLEAN | ClosePending | 
| NDIS_SPIN_LOCK | OpenInUseLock | 
Contains the state of a running instance of the NPF driver. 
This is the most important structure of NPF: it is used by almost all the functions of the driver. An _OPEN_INSTANCE structure is associated with every user-level session, allowing concurrent access to the driver.