32 for(
i = 0;
i <
Len;
i++ ) {
57 if (
FCB->DisconnectOptionsSize == 0)
68 FCB->DisconnectOptions,
88 if (!DisconnectOptions)
91 if (
FCB->DisconnectOptions)
95 FCB->DisconnectOptionsSize = 0;
96 FCB->FilledDisconnectOptions = 0;
100 DisconnectOptionsSize,
103 if (!
FCB->DisconnectOptions)
108 DisconnectOptionsSize);
110 FCB->DisconnectOptionsSize = DisconnectOptionsSize;
129 if (!DisconnectOptionsSize)
138 if (
FCB->DisconnectOptions)
141 FCB->DisconnectOptionsSize = 0;
142 FCB->FilledDisconnectOptions = 0;
146 *DisconnectOptionsSize,
151 FCB->DisconnectOptionsSize = *DisconnectOptionsSize;
168 if (
FCB->DisconnectDataSize == 0)
203 if (
FCB->DisconnectData)
207 FCB->DisconnectDataSize = 0;
208 FCB->FilledDisconnectData = 0;
215 if (!
FCB->DisconnectData)
222 FCB->DisconnectDataSize = DisconnectDataSize;
241 if (!DisconnectDataSize)
250 if (
FCB->DisconnectData)
253 FCB->DisconnectDataSize = 0;
254 FCB->FilledDisconnectData = 0;
261 if (!
FCB->DisconnectData)
264 FCB->DisconnectDataSize = *DisconnectDataSize;
286 IrpSp->
Parameters.DeviceIoControl.OutputBufferLength <
sizeof(*HandleData))
323 Irp->IoStatus.Information = 0;
325 EaInfo =
Irp->AssociatedIrp.SystemBuffer;
334 EaInfo, EaInfoValue));
352 FCB->GroupID = ConnectInfo ? ConnectInfo->
GroupID : 0;
356 FCB->DeviceExt = DeviceExt;
375 FCB->TdiDeviceName.MaximumLength =
FCB->TdiDeviceName.Length;
377 FCB->TdiDeviceName.Length,
380 if( !
FCB->TdiDeviceName.Buffer ) {
390 FCB->TdiDeviceName.Length );
411 if (
FCB->TdiDeviceName.Buffer)
441 CurrentEntry =
FCB->PendingIrpList[
Function].Flink;
442 while (CurrentEntry != &
FCB->PendingIrpList[
Function])
444 NextEntry = CurrentEntry->
Flink;
450 CurrentEntry = NextEntry;
478 InFlightRequest[0] = &
FCB->ListenIrp;
479 InFlightRequest[1] = &
FCB->ReceiveIrp;
480 InFlightRequest[2] = &
FCB->SendIrp;
481 InFlightRequest[3] = &
FCB->ConnectIrp;
482 InFlightRequest[4] = &
FCB->DisconnectIrp;
486 if( InFlightRequest[
i]->InFlightRequest ) {
488 i, InFlightRequest[
i]->InFlightRequest));
516 if(
FCB->EventSelect )
522 if (
FCB->Recv.Window)
525 if (
FCB->Send.Window)
528 if (
FCB->AddressFrom)
531 if (
FCB->ConnectCallInfo)
534 if (
FCB->ConnectReturnInfo)
537 if (
FCB->ConnectData)
540 if (
FCB->DisconnectData)
543 if (
FCB->ConnectOptions)
546 if (
FCB->DisconnectOptions)
549 if (
FCB->LocalAddress)
552 if (
FCB->RemoteAddress)
555 if(
FCB->Connection.Object )
561 if(
FCB->AddressFile.Object )
568 DbgPrint(
"INVALID ADDRESS FILE HANDLE VALUE: %p %p\n",
FCB->AddressFile.Handle,
FCB->AddressFile.Object);
576 DbgPrint(
"INVALID CONNECTION HANDLE VALUE: %p %p\n",
FCB->Connection.Handle,
FCB->Connection.Object);
580 if (
FCB->TdiDeviceName.Buffer)
588 Irp->IoStatus.Information = 0;
614 FCB->DisconnectIrp.InFlightRequest =
NULL;
622 FCB->FilledDisconnectData =
MIN(
FCB->DisconnectDataSize,
FCB->ConnectReturnInfo->UserDataLength);
623 if (
FCB->FilledDisconnectData)
626 FCB->ConnectReturnInfo->UserData,
627 FCB->FilledDisconnectData);
630 FCB->FilledDisconnectOptions =
MIN(
FCB->DisconnectOptionsSize,
FCB->ConnectReturnInfo->OptionsLength);
631 if (
FCB->FilledDisconnectOptions)
634 FCB->ConnectReturnInfo->Options,
635 FCB->FilledDisconnectOptions);
663 return Irp->IoStatus.Status;
676 if (
FCB->DisconnectIrp.InFlightRequest)
681 FCB->ConnectCallInfo->UserData =
FCB->DisconnectData;
682 FCB->ConnectCallInfo->UserDataLength =
FCB->DisconnectDataSize;
683 FCB->ConnectCallInfo->Options =
FCB->DisconnectOptions;
684 FCB->ConnectCallInfo->OptionsLength =
FCB->DisconnectOptionsSize;
687 FCB->Connection.Object,
688 &
FCB->DisconnectTimeout,
689 FCB->DisconnectFlags,
692 FCB->ConnectCallInfo,
693 FCB->ConnectReturnInfo);
747 if (
FCB->ReceiveIrp.InFlightRequest)
751 FCB->Recv.Content = 0;
752 FCB->Recv.BytesUsed = 0;
779 if (!
FCB->ConnectCallInfo)
786 if (
FCB->DisconnectPending)
788 if (
FCB->DisconnectIrp.InFlightRequest)
791 ASSERT(!
FCB->DisconnectIrp.InFlightRequest);
839 if (!
FCB->RemoteAddress)
862 Buffer->Characteristics = 0;
884 Buffer =
Irp->AssociatedIrp.SystemBuffer;
921 Irp->IoStatus.Information = 0;
1054 DbgPrint(
"IOCTL_AFD_DEFER_ACCEPT is UNIMPLEMENTED!\n");
1058 DbgPrint(
"IOCTL_AFD_GET_PENDING_CONNECT_DATA is UNIMPLEMENTED!\n");
1062 DbgPrint(
"IOCTL_AFD_VALIDATE_GROUP is UNIMPLEMENTED!\n");
1079 (
"Irp: Unknown Major code was %x\n",
1175 PollReq =
Irp->AssociatedIrp.SystemBuffer;
1246 while (CurrentEntry != &DeviceExt->
Polls)
1259 CurrentEntry = CurrentEntry->
Flink;
1267 DbgPrint(
"WARNING!!! IRP cancellation race could lead to a process hang! (IOCTL_AFD_SELECT)\n");
1280 CurrentEntry =
FCB->PendingIrpList[
Function].Flink;
1281 while (CurrentEntry != &
FCB->PendingIrpList[
Function])
1285 if (CurrentIrp ==
Irp)
1294 CurrentEntry = CurrentEntry->
Flink;
1300 DbgPrint(
"WARNING!!! IRP cancellation race could lead to a process hang! (Function: %u)\n",
Function);
#define TDI_DISCONNECT_RELEASE
VOID SocketStateUnlock(PAFD_FCB FCB)
VOID RetryDisconnectCompletion(PAFD_FCB FCB)
void OskitDumpBuffer(PCHAR Data, UINT Len)
return STATUS_NOT_SUPPORTED
NTSTATUS NTAPI AfdSetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS TdiDisassociateAddressFile(PFILE_OBJECT ConnectionObject)
#define TAG_AFD_CONNECT_DATA
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID PollReeval(PAFD_DEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
#define STATUS_INFO_LENGTH_MISMATCH
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
IN BOOLEAN OUT PSTR Buffer
#define IN_FLIGHT_REQUESTS
NTSTATUS NTAPI AfdPacketSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define UNREFERENCED_PARAMETER(P)
#define TAG_AFD_TDI_CONNECTION_INFORMATION
#define STATUS_INVALID_PARAMETER
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
PVOID LockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Output, KPROCESSOR_MODE *LockMode)
HANDLE TdiConnectionHandle
#define FILE_DEVICE_NAMED_PIPE
NTSTATUS NTAPI AfdSetDisconnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
#define IOCTL_AFD_SET_DISCONNECT_DATA_SIZE
#define IOCTL_AFD_GET_TDI_HANDLES
static NTSTATUS DoDisconnect(PAFD_FCB FCB)
#define TAG_AFD_TRANSPORT_ADDRESS
#define SOCKET_STATE_CREATED
#define TAG_AFD_DISCONNECT_DATA
#define INVALID_HANDLE_VALUE
#define IOCTL_AFD_SET_DISCONNECT_DATA
NTSTATUS NTAPI AfdGetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
BOOLEAN SocketAcquireStateLock(PAFD_FCB FCB)
#define IOCTL_AFD_START_LISTEN
NTSTATUS NTAPI AfdGetConnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_GET_PENDING_CONNECT_DATA
#define IOCTL_AFD_RECV_DATAGRAM
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG IoctlCode
NTSTATUS NTAPI UnlockAndMaybeComplete(PAFD_FCB FCB, NTSTATUS Status, PIRP Irp, UINT Information)
#define IOCTL_AFD_VALIDATE_GROUP
NTSTATUS NTAPI AfdSetInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
IoSetCancelRoutine(Irp, CancelRoutine)
#define IOCTL_AFD_WAIT_FOR_LISTEN
VOID KillSelectsForFCB(PAFD_DEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject, BOOLEAN OnlyExclusive)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
#define FUNCTION_DISCONNECT
VOID ZeroEvents(PAFD_HANDLE HandleArray, UINT HandleCount)
#define IOCTL_AFD_SET_CONNECT_OPTIONS
#define STATUS_INVALID_HANDLE
#define STATUS_BUFFER_TOO_SMALL
NTSTATUS NTAPI AfdGetDisconnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS NTAPI AfdEnumEvents(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
VOID NTAPI AfdCancelHandler(PDEVICE_OBJECT DeviceObject, PIRP Irp)
#define IOCTL_AFD_DISCONNECT
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
#define IOCTL_AFD_GET_CONTEXT_SIZE
NTSTATUS NTAPI AfdSetContext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define AFD_ENDPOINT_CONNECTIONLESS
_In_ PDEVICE_OBJECT DeviceObject
static NTSTATUS NTAPI AfdCloseSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
return STATUS_NOT_IMPLEMENTED
VOID SignalSocket(PAFD_ACTIVE_POLL Poll OPTIONAL, PIRP _Irp OPTIONAL, PAFD_POLL_INFO PollReq, NTSTATUS Status)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
ULONG AfdReceiveWindowSize
NTSTATUS NTAPI AfdSetConnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define FUNCTION_PREACCEPT
#define AFD_CONNECTION_HANDLE
#define IOCTL_AFD_SET_CONNECT_DATA_SIZE
#define AFD_DbgPrint(_t_, _x_)
#define IOCTL_AFD_GET_DISCONNECT_OPTIONS
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
static IO_COMPLETION_ROUTINE DisconnectComplete
#define IOCTL_AFD_SEND_DATAGRAM
#define AFD_EVENT_RECEIVE
#define IoCompleteRequest
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
DWORD SizeOfTransportName
#define IOCTL_AFD_SET_CONNECT_DATA
VOID CleanupPendingIrp(PAFD_FCB FCB, PIRP Irp, PIO_STACK_LOCATION IrpSp, PAFD_ACTIVE_POLL Poll)
NTSTATUS AfdWaitForListen(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IRP_MJ_QUERY_VOLUME_INFORMATION
NTSTATUS NTAPI AfdSelect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_ENUM_NETWORK_EVENTS
#define TAG_AFD_ACCEPT_QUEUE
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define IO_NETWORK_INCREMENT
#define TAG_AFD_CONNECT_OPTIONS
enum _FSINFOCLASS FS_INFORMATION_CLASS
#define AFD_DISCONNECT_SEND
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
NTSTATUS NTAPI AfdSetDisconnectOptions(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE
#define TAG_AFD_DATA_BUFFER
NTSTATUS NTAPI AfdConnectedSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short)
NTSTATUS NTAPI AfdSetConnectOptionsSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define AFD_ADDRESS_HANDLE
#define IOCTL_AFD_CONNECT
struct _LIST_ENTRY * Flink
#define IOCTL_AFD_SET_INFO
#define IOCTL_AFD_DEFER_ACCEPT
_Must_inspect_result_ _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
VOID UnlockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_GET_PEER_NAME
#define IOCTL_AFD_GET_SOCK_NAME
static NTSTATUS NTAPI AfdCreateSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
static NTSTATUS NTAPI AfdQueryVolumeInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define KeAcquireSpinLock(sl, irql)
#define ObDereferenceObject
VOID UnlockBuffers(PAFD_WSABUF Buf, UINT Count, BOOL Address)
NTSTATUS NTAPI AfdStreamSocketConnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS AfdQueryFsDeviceInfo(PDEVICE_OBJECT DeviceObject, PFILE_FS_DEVICE_INFORMATION Buffer, PULONG Length)
NTSTATUS QueueUserModeIrp(PAFD_FCB FCB, PIRP Irp, UINT Function)
PVOID GetLockedData(PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define ExAllocatePoolWithTag(hernya, size, tag)
static NTSTATUS NTAPI AfdGetTdiHandles(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_GET_DISCONNECT_DATA
NTSTATUS NTAPI AfdGetSockName(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
VOID NTAPI KeInitializeMutex(IN PKMUTEX Mutex, IN ULONG Level)
static DRIVER_UNLOAD AfdUnload
#define STATUS_INVALID_INFO_CLASS
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define TAG_AFD_DISCONNECT_OPTIONS
struct _FILE_FS_DEVICE_INFORMATION FILE_FS_DEVICE_INFORMATION
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 AfdListenSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
DRIVER_DISPATCH(nfs41_FsdDispatch)
NTSTATUS NTAPI AfdSetDisconnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS NTAPI AfdSetDisconnectOptionsSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS NTAPI AfdGetDisconnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
#define IOCTL_AFD_GET_INFO
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
NTSTATUS NTAPI AfdGetContext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
static DRIVER_DISPATCH AfdDispatch
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 LostSocket(PIRP Irp)
NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
#define InitializeListHead(ListHead)
NTSTATUS NTAPI AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
_In_ PIO_STACK_LOCATION IrpSp
struct _AFD_CREATE_PACKET * PAFD_CREATE_PACKET
NTSTATUS NTAPI AfdGetContextSize(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define KeReleaseSpinLock(sl, irql)
#define IOCTL_AFD_GET_CONNECT_DATA
BOOLEAN NTAPI IoCancelIrp(IN PIRP Irp)
struct tagContext Context
#define IOCTL_AFD_SET_DISCONNECT_OPTIONS
#define SOCKET_STATE_CLOSED
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
#define IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE
NTSTATUS AfdAccept(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_EVENT_SELECT
#define ExFreePoolWithTag(_P, _T)
#define AFD_DISCONNECT_RECV
static NTSTATUS NTAPI AfdCleanupSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
static NTSTATUS NTAPI AfdDisconnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
BOOLEAN CheckUnlockExtraBuffers(PAFD_FCB FCB, PIO_STACK_LOCATION IrpSp)
#define IOCTL_AFD_GET_CONNECT_OPTIONS
NTSTATUS NTAPI AfdGetInfo(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define TAG_AFD_SOCKET_CONTEXT
NTSTATUS NTAPI AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define TDI_DISCONNECT_ABORT
NTSTATUS NTAPI AfdSetConnectData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS NTAPI AfdEventSelect(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
#define IOCTL_AFD_SET_CONTEXT
NTSTATUS NTAPI AfdConnectedSocketReadData(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Short)
#define IRP_MJ_DEVICE_CONTROL
#define IOCTL_AFD_GET_CONTEXT
#define RTL_CONSTANT_STRING(s)
NTSTATUS NTAPI AfdGetPeerName(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
#define STATUS_FILE_CLOSED