47 DPRINT(
"Irp->UserEvent = %p\n",
Irp->UserEvent);
53 DPRINT(
"Waiting on transport.\n");
131 DPRINT(
"ObReferenceObjectByHandle() failed with status (0x%X).\n",
Status);
137 DPRINT(
"ZwCreateFile() failed with status (0x%X)\n",
Status);
205 PUINT MaxDatagramLength)
236 DPRINT(
"Failed to lock pages\n");
251 *MaxDatagramLength =
Buffer->MaxDatagramSize;
331 if (!ConnectionObject) {
332 DPRINT(
"Bad connection object.\n");
338 DPRINT(
"Bad device object.\n");
358 ConnectionReturnInfo);
383 DPRINT(
"Called. AddressHandle (%p) ConnectionObject (%p)\n", AddressHandle, ConnectionObject);
385 if (!ConnectionObject) {
386 DPRINT(
"Bad connection object.\n");
392 DPRINT(
"Bad device object.\n");
431 DPRINT(
"Called. ConnectionObject (%p)\n", ConnectionObject);
433 if (!ConnectionObject) {
434 DPRINT(
"Bad connection object.\n");
440 DPRINT(
"Bad device object.\n");
484 if (!ConnectionObject) {
485 DPRINT(
"Bad connection object.\n");
491 DPRINT(
"Bad device object.\n");
509 *RequestConnectionInfo,
510 *ReturnConnectionInfo);
538 if (!AcceptConnectionObject) {
539 DPRINT(
"Bad connection object.\n");
545 DPRINT(
"Bad device object.\n");
551 AcceptConnectionObject,
559 AcceptConnectionObject,
562 RequestConnectionInfo,
563 ReturnConnectionInfo);
597 DPRINT(
"Bad file object.\n");
603 DPRINT(
"Bad device object.\n");
660 DPRINT(
"Bad file object.\n");
666 DPRINT(
"Bad device object.\n");
687 *Return =
Iosb.Information;
713 DPRINT(
"Bad file object.\n");
719 DPRINT(
"Bad device object.\n");
815 DPRINT(
"Insufficient resources.\n");
830 DPRINT(
"Unable to get list of supported entities (Status = 0x%X).\n",
Status);
847 Entities[
i].tei_instance,
854 DPRINT(
"Unable to get entity of type IP (Status = 0x%X).\n",
Status);
863 Entities[
i].tei_instance,
870 DPRINT(
"Unable to get SNMP information or no IP addresses available (Status = 0x%X).\n",
Status);
882 DPRINT(
"Insufficient resources.\n");
888 Entities[
i].tei_instance,
895 DPRINT(
"Unable to get IP address (Status = 0x%X).\n",
Status);
935 if (!TransportObject) {
936 DPRINT(
"Bad transport object.\n");
942 DPRINT(
"Bad device object.\n");
953 DPRINT(
"Insufficient resources.\n");
965 DPRINT(
"Insufficient resources.\n");
974 DPRINT(
"MmProbeAndLockPages() failed.\n");
1011 if (!TransportObject) {
1012 DPRINT(
"Bad transport object.\n");
1018 DPRINT(
"Bad device object.\n");
1029 DPRINT(
"Insufficient resources.\n");
1041 DPRINT(
"Insufficient resources.\n");
1048 DPRINT(
"probe and lock\n");
1050 DPRINT(
"probe and lock done\n");
1052 DPRINT(
"MmProbeAndLockPages() failed.\n");
1103 if (!TransportObject) {
1104 DPRINT(
"Bad tranport object.\n");
1110 DPRINT(
"Bad device object.\n");
1121 DPRINT(
"Insufficient resources.\n");
1133 DPRINT(
"Insufficient resources.\n");
1142 DPRINT(
"MmProbeAndLockPages() failed.\n");
1193 if (!TransportObject) {
1194 DPRINT(
"Bad transport object.\n");
1198 DPRINT(
"Called(TransportObject %p)\n", TransportObject);
1202 DPRINT(
"Bad device object.\n");
1208 DPRINT(
"Succeeding send with length 0.\n");
1219 DPRINT(
"Insufficient resources.\n");
1232 DPRINT(
"Insufficient resources.\n");
1241 DPRINT(
"MmProbeAndLockPages() failed.\n");
1277 if (!TransportObject) {
1278 DPRINT(
"Bad transport object.\n");
1282 DPRINT(
"Called(TransportObject %p)\n", TransportObject);
1286 DPRINT(
"Bad device object.\n");
1297 DPRINT(
"Insufficient resources.\n");
1308 RequestConnectionInfo,
1309 ReturnConnectionInfo);
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
struct IPADDR_ENTRY * PIPADDR_ENTRY
#define IP_MIB_ADDRTABLE_ENTRY_ID
#define TAG_AFD_SNMP_ADDRESS_INFO
#define TAG_AFD_DATA_BUFFER
#define TAG_AFD_TRANSPORT_ADDRESS
#define NT_SUCCESS(StatCode)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT ShareAccess
NTSTATUS TdiQueryInformationEx(PFILE_OBJECT FileObject, ULONG Entity, ULONG Instance, ULONG Class, ULONG Type, ULONG Id, PVOID OutputBuffer, PULONG OutputLength)
Extended query for information.
NTSTATUS TdiListen(PIRP *Irp, PFILE_OBJECT ConnectionObject, PTDI_CONNECTION_INFORMATION *RequestConnectionInfo, PTDI_CONNECTION_INFORMATION *ReturnConnectionInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Listen on a connection endpoint for a connection request from a remote peer.
NTSTATUS TdiAssociateAddressFile(HANDLE AddressHandle, PFILE_OBJECT ConnectionObject)
Associates a connection endpoint to an address file object.
NTSTATUS TdiSendDatagram(PIRP *Irp, PFILE_OBJECT TransportObject, PCHAR Buffer, UINT BufferLength, PTDI_CONNECTION_INFORMATION Addr, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Sends a datagram.
NTSTATUS TdiOpenConnectionEndpointFile(PUNICODE_STRING DeviceName, PHANDLE ConnectionHandle, PFILE_OBJECT *ConnectionObject)
Opens a connection endpoint file object.
NTSTATUS TdiQueryMaxDatagramLength(PFILE_OBJECT FileObject, PUINT MaxDatagramLength)
NTSTATUS TdiDisassociateAddressFile(PFILE_OBJECT ConnectionObject)
Disassociates a connection endpoint from an address file object.
NTSTATUS TdiSend(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
NTSTATUS TdiQueryInformation(PFILE_OBJECT FileObject, LONG QueryType, PMDL MdlBuffer)
Query for information.
static NTSTATUS TdiCall(PIRP Irp, PDEVICE_OBJECT DeviceObject, PKEVENT Event, PIO_STATUS_BLOCK Iosb)
Calls a transport driver device.
NTSTATUS TdiAccept(PIRP *Irp, PFILE_OBJECT AcceptConnectionObject, PTDI_CONNECTION_INFORMATION RequestConnectionInfo, PTDI_CONNECTION_INFORMATION ReturnConnectionInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Listen on a connection endpoint for a connection request from a remote peer.
NTSTATUS TdiSetEventHandler(PFILE_OBJECT FileObject, LONG EventType, PVOID Handler, PVOID Context)
Sets or resets an event handler.
NTSTATUS TdiQueryDeviceControl(PFILE_OBJECT FileObject, ULONG IoControlCode, PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, ULONG OutputBufferLength, PULONG Return)
Queries a device for information.
static NTSTATUS TdiOpenDevice(PUNICODE_STRING DeviceName, ULONG EaLength, PFILE_FULL_EA_INFORMATION EaInfo, ULONG ShareType, PHANDLE Handle, PFILE_OBJECT *Object)
Opens a device.
NTSTATUS TdiReceiveDatagram(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PTDI_CONNECTION_INFORMATION Addr, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Receives a datagram.
NTSTATUS TdiConnect(PIRP *Irp, PFILE_OBJECT ConnectionObject, PTDI_CONNECTION_INFORMATION ConnectionCallInfo, PTDI_CONNECTION_INFORMATION ConnectionReturnInfo, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
Connect a connection endpoint to a remote peer.
NTSTATUS TdiDisconnect(PIRP *Irp, PFILE_OBJECT TransportObject, PLARGE_INTEGER Time, USHORT Flags, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext, PTDI_CONNECTION_INFORMATION RequestConnectionInfo, PTDI_CONNECTION_INFORMATION ReturnConnectionInfo)
NTSTATUS TdiReceive(PIRP *Irp, PFILE_OBJECT TransportObject, USHORT Flags, PCHAR Buffer, UINT BufferLength, PIO_COMPLETION_ROUTINE CompletionRoutine, PVOID CompletionContext)
NTSTATUS TdiOpenAddressFile(PUNICODE_STRING DeviceName, PTRANSPORT_ADDRESS Name, ULONG ShareType, PHANDLE AddressHandle, PFILE_OBJECT *AddressObject)
Opens an IPv4 address file object.
NTSTATUS TdiQueryAddress(PFILE_OBJECT FileObject, PULONG Address)
Queries for a local IP address.
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
IN PVCB IN PDIRENT OUT PULONG EaLength
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
struct _FILE_FULL_EA_INFORMATION FILE_FULL_EA_INFORMATION
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
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
#define EXCEPTION_EXECUTE_HANDLER
POBJECT_TYPE IoFileObjectType
_In_ PKSPIN_CONNECT _In_ ACCESS_MASK _Out_ PHANDLE ConnectionHandle
VOID NTAPI MmProbeAndLockPages(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation)
#define ExFreePoolWithTag(_P, _T)
#define InitializeObjectAttributes(p, n, a, r, s)
static PLARGE_INTEGER Time
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE EventType
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(IN PFILE_OBJECT FileObject)
#define IoCompleteRequest
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)
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
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)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
#define TDI_QUERY_MAX_DATAGRAM_INFO
struct _TA_ADDRESS_IP TA_IP_ADDRESS
struct _TRANSPORT_ADDRESS * PTRANSPORT_ADDRESS
#define TDI_CONNECTION_CONTEXT_LENGTH
#define TDI_TRANSPORT_ADDRESS_LENGTH
#define TdiConnectionContext
#define TdiTransportAddress
UINT TaLengthOfTransportAddress(PTRANSPORT_ADDRESS Addr)
VOID TaCopyTransportAddressInPlace(PTRANSPORT_ADDRESS Target, PTRANSPORT_ADDRESS Source)
struct _TDIEntityID TDIEntityID
#define INFO_CLASS_PROTOCOL
#define INFO_CLASS_GENERIC
#define INFO_TYPE_PROVIDER
#define TdiBuildReceive( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, InFlags, ReceiveLen)
#define TDI_SEND_DATAGRAM
#define TdiBuildAssociateAddress( Irp, DevObj, FileObj, CompRoutine, Contxt, AddrHandle)
#define TDI_RECEIVE_DATAGRAM
#define TdiBuildListen( Irp, DevObj, FileObj, CompRoutine, Contxt, Flags, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildDisconnect( Irp, DevObj, FileObj, CompRoutine, Contxt, Time, Flags, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildSend( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, InFlags, SendLen)
#define TdiBuildInternalDeviceControlIrp(IrpSubFunction, DeviceObject, FileObject, Event, IoStatusBlock)
#define TDI_QUERY_INFORMATION
#define TdiBuildReceiveDatagram( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags)
#define TdiBuildDisassociateAddress( Irp, DevObj, FileObj, CompRoutine, Contxt)
#define TdiBuildSendDatagram( Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr, SendLen, SendDatagramInfo)
#define TdiBuildQueryInformation( Irp, DevObj, FileObj, CompRoutine, Contxt, QType, MdlAddr)
#define TdiBuildAccept( Irp, DevObj, FileObj, CompRoutine, Contxt, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildConnect( Irp, DevObj, FileObj, CompRoutine, Contxt, Time, RequestConnectionInfo, ReturnConnectionInfo)
#define TdiBuildSetEventHandler( Irp, DevObj, FileObj, CompRoutine, Contxt, InEventType, InEventHandler, InEventContext)
#define TDI_DISASSOCIATE_ADDRESS
#define TDI_SET_EVENT_HANDLER
#define TDI_ASSOCIATE_ADDRESS
#define IOCTL_TCP_QUERY_INFORMATION_EX
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
_Must_inspect_result_ _In_ ULONG Flags
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE