ntdll: Introduce IOCTL_WINE_AFD_COMPLETE_ASYNC.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
810a9da935
commit
be8bd6f498
|
@ -5099,7 +5099,7 @@ static NTSTATUS register_async_file_read( HANDLE handle, HANDLE event,
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_completion( HANDLE handle, ULONG_PTR value, NTSTATUS status, ULONG info, BOOL async )
|
void add_completion( HANDLE handle, ULONG_PTR value, NTSTATUS status, ULONG info, BOOL async )
|
||||||
{
|
{
|
||||||
SERVER_START_REQ( add_fd_completion )
|
SERVER_START_REQ( add_fd_completion )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1116,6 +1116,17 @@ static NTSTATUS sock_transmit( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc,
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void complete_async( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user,
|
||||||
|
IO_STATUS_BLOCK *io, NTSTATUS status, ULONG_PTR information )
|
||||||
|
{
|
||||||
|
io->Status = status;
|
||||||
|
io->Information = information;
|
||||||
|
if (event) NtSetEvent( event, NULL );
|
||||||
|
if (apc) NtQueueApcThread( GetCurrentThread(), (PNTAPCFUNC)apc, (ULONG_PTR)apc_user, (ULONG_PTR)io, 0 );
|
||||||
|
if (apc_user) add_completion( handle, (ULONG_PTR)apc_user, status, information, FALSE );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user, IO_STATUS_BLOCK *io,
|
NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user, IO_STATUS_BLOCK *io,
|
||||||
ULONG code, void *in_buffer, ULONG in_size, void *out_buffer, ULONG out_size )
|
ULONG code, void *in_buffer, ULONG in_size, void *out_buffer, ULONG out_size )
|
||||||
{
|
{
|
||||||
|
@ -1249,6 +1260,16 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case IOCTL_AFD_WINE_COMPLETE_ASYNC:
|
||||||
|
{
|
||||||
|
if (in_size != sizeof(NTSTATUS))
|
||||||
|
return STATUS_BUFFER_TOO_SMALL;
|
||||||
|
|
||||||
|
status = *(NTSTATUS *)in_buffer;
|
||||||
|
complete_async( handle, event, apc, apc_user, io, status, 0 );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case IOCTL_AFD_POLL:
|
case IOCTL_AFD_POLL:
|
||||||
status = sock_poll( handle, event, apc, apc_user, io, in_buffer, in_size, out_buffer, out_size );
|
status = sock_poll( handle, event, apc, apc_user, io, in_buffer, in_size, out_buffer, out_size );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -279,6 +279,7 @@ extern NTSTATUS open_unix_file( HANDLE *handle, const char *unix_name, ACCESS_MA
|
||||||
ULONG options, void *ea_buffer, ULONG ea_length ) DECLSPEC_HIDDEN;
|
ULONG options, void *ea_buffer, ULONG ea_length ) DECLSPEC_HIDDEN;
|
||||||
extern void init_files(void) DECLSPEC_HIDDEN;
|
extern void init_files(void) DECLSPEC_HIDDEN;
|
||||||
extern void init_cpu_info(void) DECLSPEC_HIDDEN;
|
extern void init_cpu_info(void) DECLSPEC_HIDDEN;
|
||||||
|
extern void add_completion( HANDLE handle, ULONG_PTR value, NTSTATUS status, ULONG info, BOOL async ) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
extern void dbg_init(void) DECLSPEC_HIDDEN;
|
extern void dbg_init(void) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,7 @@ struct afd_poll_params
|
||||||
#define IOCTL_AFD_WINE_TRANSMIT CTL_CODE(FILE_DEVICE_NETWORK, 207, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
#define IOCTL_AFD_WINE_TRANSMIT CTL_CODE(FILE_DEVICE_NETWORK, 207, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
#define IOCTL_AFD_WINE_ADDRESS_LIST_CHANGE CTL_CODE(FILE_DEVICE_NETWORK, 208, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
#define IOCTL_AFD_WINE_ADDRESS_LIST_CHANGE CTL_CODE(FILE_DEVICE_NETWORK, 208, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
#define IOCTL_AFD_WINE_FIONBIO CTL_CODE(FILE_DEVICE_NETWORK, 209, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
#define IOCTL_AFD_WINE_FIONBIO CTL_CODE(FILE_DEVICE_NETWORK, 209, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
|
#define IOCTL_AFD_WINE_COMPLETE_ASYNC CTL_CODE(FILE_DEVICE_NETWORK, 210, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
|
|
||||||
struct afd_create_params
|
struct afd_create_params
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue