216 Address->Address[0].Address[0].in_addr = 0;
269 *Return =
Iosb.Information;
383 Entities[
i].tei_instance,
401 Entities[
i].tei_instance,
428 Entities[
i].tei_instance,
731 UCHAR Data[40] =
"Testing one, two, three, ...";
865 PVOID ReceiveThreadObject = 0;
866 PVOID SendThreadObject = 0;
static const WCHAR Class[]
#define THREAD_ALL_ACCESS
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define STATUS_INSUFFICIENT_RESOURCES
#define OBJ_CASE_INSENSITIVE
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
VOID TdiReceiveThread(PVOID Context)
#define STATUS_INVALID_PARAMETER
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
struct _TDIEntityID TDIEntityID
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
struct _TA_ADDRESS_IP * PTA_IP_ADDRESS
NTSTATUS TdiQueryAddress(PFILE_OBJECT FileObject, PULONG Address)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
NTSTATUS TdiReceiveDatagram(PFILE_OBJECT TransportObject, USHORT Port, PULONG Address, PUCHAR Buffer, PULONG BufferSize)
IN PVOID IN PVOID IN USHORT IN USHORT Size
#define TdiBuildSendDatagram( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, SendLen, SendDatagramInfo)
PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(IN PFILE_OBJECT FileObject)
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
DRIVER_UNLOAD * PDRIVER_UNLOAD
_In_ WDFREQUEST _In_ size_t OutputBufferLength
#define TDI_RECEIVE_NORMAL
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
KSTART_ROUTINE * PKSTART_ROUTINE
_In_ PVOID _In_ ULONG Event
NTSTATUS TdiCloseDevice(HANDLE Handle, PFILE_OBJECT FileObject)
#define TDI_RECEIVE_DATAGRAM
struct _TA_ADDRESS_IP::_AddrIp Address[1]
VOID TdiUnload(PDRIVER_OBJECT DriverObject)
NTSTATUS TdiCall(PIRP Irp, PDEVICE_OBJECT DeviceObject, PIO_STATUS_BLOCK IoStatusBlock, BOOLEAN CanCancel)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
#define TdiBuildInternalDeviceControlIrp(IrpSubFunction, DeviceObject, FileObject, Event, IoStatusBlock)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
struct IPADDR_ENTRY * PIPADDR_ENTRY
#define ExInitializeWorkItem(Item, Routine, Context)
NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
IN PVCB IN PDIRENT OUT PULONG EaLength
#define INFO_CLASS_GENERIC
#define NT_SUCCESS(StatCode)
struct _TDI_ADDRESS_IP * PTDI_ADDRESS_IP
#define EXCEPTION_EXECUTE_HANDLER
NTSTATUS TdiSendDatagram(PFILE_OBJECT TransportObject, USHORT Port, ULONG Address, PVOID Buffer, ULONG BufferSize)
struct _TDI_CONNECTION_INFORMATION * PTDI_CONNECTION_INFORMATION
#define ObDereferenceObject
PDEVICE_OBJECT DeviceObject
VOID TdiOpenThread(PVOID Context)
NTSTATUS NTAPI KeWaitForMultipleObjects(IN ULONG Count, IN PVOID Object[], IN WAIT_TYPE WaitType, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL, OUT PKWAIT_BLOCK WaitBlockArray OPTIONAL)
struct _TA_ADDRESS_IP TA_IP_ADDRESS
VOID NTAPI IoFreeMdl(PMDL Mdl)
#define STATUS_UNSUCCESSFUL
PFILE_OBJECT TdiTransportObject
#define FILE_ATTRIBUTE_NORMAL
#define TdiBuildReceiveDatagram( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags)
#define ExAllocatePool(type, size)
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
#define TDI_ADDRESS_TYPE_IP
struct _FILE_FULL_EA_INFORMATION FILE_FULL_EA_INFORMATION
#define IOCTL_TCP_QUERY_INFORMATION_EX
struct _TDI_CONNECTION_INFORMATION TDI_CONNECTION_INFORMATION
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
PMDL NTAPI IoAllocateMdl(IN PVOID VirtualAddress, IN ULONG Length, IN BOOLEAN SecondaryBuffer, IN BOOLEAN ChargeQuota, IN PIRP Irp)
NTSTATUS TdiOpenTransport(PWSTR Protocol, USHORT Port, PHANDLE Transport, PFILE_OBJECT *TransportObject)
struct _TDI_ADDRESS_IP TDI_ADDRESS_IP
#define KeInitializeEvent(pEvt, foo, foo2)
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSTATUS NTAPI PsTerminateSystemThread(IN NTSTATUS ExitStatus)
NTSTATUS NTAPI PsCreateSystemThread(OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE ProcessHandle, IN PCLIENT_ID ClientId, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext)
static OUT PIO_STATUS_BLOCK IoStatusBlock
#define TdiTransportAddress
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
PIRP NTAPI IoBuildDeviceIoControlRequest(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
BOOLEAN NTAPI IoCancelIrp(IN PIRP Irp)
#define INFO_TYPE_PROVIDER
#define TDI_TRANSPORT_ADDRESS_LENGTH
#define TDI_SEND_DATAGRAM
LONG NTAPI KeReadStateEvent(IN PKEVENT Event)
VOID NTAPI IoFreeIrp(IN PIRP Irp)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define InitializeObjectAttributes(p, n, a, r, s)
#define RtlCopyMemory(Destination, Source, Length)
NTSTATUS TdiOpenDevice(PWSTR Protocol, ULONG EaLength, PFILE_FULL_EA_INFORMATION EaInfo, PHANDLE Handle, PFILE_OBJECT *Object)
NTSTATUS TdiQueryInformationEx(PFILE_OBJECT FileObject, ULONG Entity, ULONG Instance, ULONG Class, ULONG Type, ULONG Id, PVOID OutputBuffer, PULONG OutputLength)
#define _SEH2_EXCEPT(...)
VOID TdiSendThread(PVOID Context)
#define TDI_ADDRESS_LENGTH_IP
#define _SEH2_YIELD(__stmt)
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
NTSTATUS TdiQueryDeviceControl(PFILE_OBJECT FileObject, ULONG IoControlCode, PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, ULONG OutputBufferLength, PULONG Return)
#define IP_MIB_ADDRTABLE_ENTRY_ID
#define TDI_DbgPrint(_t_, _x_)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
struct IPADDR_ENTRY IPADDR_ENTRY
WORKER_THREAD_ROUTINE * PWORKER_THREAD_ROUTINE
#define INFO_CLASS_PROTOCOL
_Must_inspect_result_ _In_ ULONG _In_ PSOCKADDR LocalAddress