mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 09:03:25 +00:00
[AFD]
- Implement IOCTL_AFD_GET_TDI_HANDLES svn path=/trunk/; revision=48020
This commit is contained in:
parent
c88bff245c
commit
a37a8bfe92
1 changed files with 25 additions and 2 deletions
|
@ -213,6 +213,30 @@ AfdSetDisconnectDataSize(PDEVICE_OBJECT DeviceObject, PIRP Irp,
|
||||||
return UnlockAndMaybeComplete(FCB, STATUS_SUCCESS, Irp, 0);
|
return UnlockAndMaybeComplete(FCB, STATUS_SUCCESS, Irp, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static NTSTATUS NTAPI
|
||||||
|
AfdGetTdiHandles(PDEVICE_OBJECT DeviceObject, PIRP Irp,
|
||||||
|
PIO_STACK_LOCATION IrpSp)
|
||||||
|
{
|
||||||
|
PFILE_OBJECT FileObject = IrpSp->FileObject;
|
||||||
|
PAFD_FCB FCB = FileObject->FsContext;
|
||||||
|
PULONG HandleFlags = IrpSp->Parameters.DeviceIoControl.Type3InputBuffer;
|
||||||
|
PAFD_TDI_HANDLE_DATA HandleData = Irp->UserBuffer;
|
||||||
|
|
||||||
|
if (!SocketAcquireStateLock(FCB)) return LostSocket(Irp);
|
||||||
|
|
||||||
|
if (IrpSp->Parameters.DeviceIoControl.InputBufferLength < sizeof(ULONG) ||
|
||||||
|
IrpSp->Parameters.DeviceIoControl.OutputBufferLength < sizeof(*HandleData))
|
||||||
|
return UnlockAndMaybeComplete(FCB, STATUS_BUFFER_TOO_SMALL, Irp, 0);
|
||||||
|
|
||||||
|
if ((*HandleFlags) & AFD_ADDRESS_HANDLE)
|
||||||
|
HandleData->TdiAddressHandle = FCB->AddressFile.Handle;
|
||||||
|
|
||||||
|
if ((*HandleFlags) & AFD_CONNECTION_HANDLE)
|
||||||
|
HandleData->TdiConnectionHandle = FCB->Connection.Handle;
|
||||||
|
|
||||||
|
return UnlockAndMaybeComplete(FCB, STATUS_SUCCESS, Irp, 0);
|
||||||
|
}
|
||||||
|
|
||||||
static NTSTATUS NTAPI
|
static NTSTATUS NTAPI
|
||||||
AfdCreateSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp,
|
AfdCreateSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp,
|
||||||
PIO_STACK_LOCATION IrpSp) {
|
PIO_STACK_LOCATION IrpSp) {
|
||||||
|
@ -694,8 +718,7 @@ AfdDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
return AfdSetDisconnectOptionsSize(DeviceObject, Irp, IrpSp);
|
return AfdSetDisconnectOptionsSize(DeviceObject, Irp, IrpSp);
|
||||||
|
|
||||||
case IOCTL_AFD_GET_TDI_HANDLES:
|
case IOCTL_AFD_GET_TDI_HANDLES:
|
||||||
DbgPrint("IOCTL_AFD_GET_TDI_HANDLES is UNIMPLEMENTED!\n");
|
return AfdGetTdiHandles(DeviceObject, Irp, IrpSp);
|
||||||
break;
|
|
||||||
|
|
||||||
case IOCTL_AFD_DEFER_ACCEPT:
|
case IOCTL_AFD_DEFER_ACCEPT:
|
||||||
DbgPrint("IOCTL_AFD_DEFER_ACCEPT is UNIMPLEMENTED!\n");
|
DbgPrint("IOCTL_AFD_DEFER_ACCEPT is UNIMPLEMENTED!\n");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue