ws: move ws_get_base_socket() from afd.c to ws.c
This commit is contained in:
parent
ba343a0898
commit
c69f361564
25
src/afd.c
25
src/afd.c
@ -3,6 +3,7 @@
|
||||
#include "nt.h"
|
||||
#include "util.h"
|
||||
#include "win.h"
|
||||
#include "ws.h"
|
||||
|
||||
#define FILE_DEVICE_NETWORK 0x00000012
|
||||
#define METHOD_BUFFERED 0
|
||||
@ -13,10 +14,6 @@
|
||||
|
||||
#define IOCTL_AFD_POLL _AFD_CONTROL_CODE(AFD_POLL, METHOD_BUFFERED)
|
||||
|
||||
#ifndef SIO_BASE_HANDLE
|
||||
#define SIO_BASE_HANDLE 0x48000022
|
||||
#endif
|
||||
|
||||
/* clang-format off */
|
||||
static const GUID _AFD_PROVIDER_GUID_LIST[] = {
|
||||
/* MSAFD Tcpip [TCP+UDP+RAW / IP] */
|
||||
@ -103,24 +100,6 @@ int afd_poll(SOCKET driver_socket,
|
||||
return_error(-1, RtlNtStatusToDosError(status));
|
||||
}
|
||||
|
||||
static SOCKET _afd_get_base_socket(SOCKET socket) {
|
||||
SOCKET base_socket;
|
||||
DWORD bytes;
|
||||
|
||||
if (WSAIoctl(socket,
|
||||
SIO_BASE_HANDLE,
|
||||
NULL,
|
||||
0,
|
||||
&base_socket,
|
||||
sizeof base_socket,
|
||||
&bytes,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
return_error(INVALID_SOCKET);
|
||||
|
||||
return base_socket;
|
||||
}
|
||||
|
||||
static int _afd_get_protocol_info(SOCKET socket,
|
||||
WSAPROTOCOL_INFOW* protocol_info) {
|
||||
int opt_len;
|
||||
@ -166,7 +145,7 @@ WEPOLL_INTERNAL int afd_get_protocol_info(SOCKET socket,
|
||||
if (error != ERROR_DEVICE_FEATURE_NOT_SUPPORTED)
|
||||
return -1;
|
||||
|
||||
afd_socket = _afd_get_base_socket(socket);
|
||||
afd_socket = ws_get_base_socket(socket);
|
||||
if (afd_socket == INVALID_SOCKET || afd_socket == socket)
|
||||
return_error(-1, error);
|
||||
|
||||
|
||||
24
src/ws.c
24
src/ws.c
@ -1,6 +1,10 @@
|
||||
#include "ws.h"
|
||||
#include "error.h"
|
||||
#include "win.h"
|
||||
#include "ws.h"
|
||||
|
||||
#ifndef SIO_BASE_HANDLE
|
||||
#define SIO_BASE_HANDLE 0x48000022
|
||||
#endif
|
||||
|
||||
int ws_global_init(void) {
|
||||
int r;
|
||||
@ -12,3 +16,21 @@ int ws_global_init(void) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SOCKET ws_get_base_socket(SOCKET socket) {
|
||||
SOCKET base_socket;
|
||||
DWORD bytes;
|
||||
|
||||
if (WSAIoctl(socket,
|
||||
SIO_BASE_HANDLE,
|
||||
NULL,
|
||||
0,
|
||||
&base_socket,
|
||||
sizeof base_socket,
|
||||
&bytes,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
return_error(INVALID_SOCKET);
|
||||
|
||||
return base_socket;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user