19 #ifndef GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
20 #define GRPC_CORE_LIB_IOMGR_SOCKET_WINDOWS_H
26 #ifdef GRPC_WINSOCK_SOCKET
35 #ifndef WSA_FLAG_NO_HANDLE_INHERIT
36 #define WSA_FLAG_NO_HANDLE_INHERIT 0x80
42 typedef struct grpc_winsocket_callback_info {
48 OVERLAPPED overlapped;
62 DWORD bytes_transferred;
64 } grpc_winsocket_callback_info;
75 typedef struct grpc_winsocket {
80 grpc_winsocket_callback_info read_info;
97 grpc_winsocket* grpc_winsocket_create(SOCKET
socket,
const char*
name);
99 SOCKET grpc_winsocket_wrapped_socket(grpc_winsocket*
socket);
103 void grpc_winsocket_shutdown(grpc_winsocket*
socket);
106 void grpc_winsocket_destroy(grpc_winsocket*
socket);
108 void grpc_socket_notify_on_write(grpc_winsocket* winsocket,
111 void grpc_socket_notify_on_read(grpc_winsocket* winsocket,
114 void grpc_socket_become_ready(grpc_winsocket* winsocket,
115 grpc_winsocket_callback_info* ci);
121 void grpc_wsa_socket_flags_init();
123 DWORD grpc_get_default_wsa_socket_flags();