17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_Overlapped_GetOverlappedResult__doc__, 67db96d56Sopenharmony_ci"GetOverlappedResult($self, wait, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n"); 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci#define _WINAPI_OVERLAPPED_GETOVERLAPPEDRESULT_METHODDEF \ 117db96d56Sopenharmony_ci {"GetOverlappedResult", (PyCFunction)_winapi_Overlapped_GetOverlappedResult, METH_O, _winapi_Overlapped_GetOverlappedResult__doc__}, 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_cistatic PyObject * 147db96d56Sopenharmony_ci_winapi_Overlapped_GetOverlappedResult_impl(OverlappedObject *self, int wait); 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_cistatic PyObject * 177db96d56Sopenharmony_ci_winapi_Overlapped_GetOverlappedResult(OverlappedObject *self, PyObject *arg) 187db96d56Sopenharmony_ci{ 197db96d56Sopenharmony_ci PyObject *return_value = NULL; 207db96d56Sopenharmony_ci int wait; 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci wait = PyObject_IsTrue(arg); 237db96d56Sopenharmony_ci if (wait < 0) { 247db96d56Sopenharmony_ci goto exit; 257db96d56Sopenharmony_ci } 267db96d56Sopenharmony_ci return_value = _winapi_Overlapped_GetOverlappedResult_impl(self, wait); 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ciexit: 297db96d56Sopenharmony_ci return return_value; 307db96d56Sopenharmony_ci} 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_Overlapped_getbuffer__doc__, 337db96d56Sopenharmony_ci"getbuffer($self, /)\n" 347db96d56Sopenharmony_ci"--\n" 357db96d56Sopenharmony_ci"\n"); 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ci#define _WINAPI_OVERLAPPED_GETBUFFER_METHODDEF \ 387db96d56Sopenharmony_ci {"getbuffer", (PyCFunction)_winapi_Overlapped_getbuffer, METH_NOARGS, _winapi_Overlapped_getbuffer__doc__}, 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_cistatic PyObject * 417db96d56Sopenharmony_ci_winapi_Overlapped_getbuffer_impl(OverlappedObject *self); 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_cistatic PyObject * 447db96d56Sopenharmony_ci_winapi_Overlapped_getbuffer(OverlappedObject *self, PyObject *Py_UNUSED(ignored)) 457db96d56Sopenharmony_ci{ 467db96d56Sopenharmony_ci return _winapi_Overlapped_getbuffer_impl(self); 477db96d56Sopenharmony_ci} 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_Overlapped_cancel__doc__, 507db96d56Sopenharmony_ci"cancel($self, /)\n" 517db96d56Sopenharmony_ci"--\n" 527db96d56Sopenharmony_ci"\n"); 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_ci#define _WINAPI_OVERLAPPED_CANCEL_METHODDEF \ 557db96d56Sopenharmony_ci {"cancel", (PyCFunction)_winapi_Overlapped_cancel, METH_NOARGS, _winapi_Overlapped_cancel__doc__}, 567db96d56Sopenharmony_ci 577db96d56Sopenharmony_cistatic PyObject * 587db96d56Sopenharmony_ci_winapi_Overlapped_cancel_impl(OverlappedObject *self); 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_cistatic PyObject * 617db96d56Sopenharmony_ci_winapi_Overlapped_cancel(OverlappedObject *self, PyObject *Py_UNUSED(ignored)) 627db96d56Sopenharmony_ci{ 637db96d56Sopenharmony_ci return _winapi_Overlapped_cancel_impl(self); 647db96d56Sopenharmony_ci} 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CloseHandle__doc__, 677db96d56Sopenharmony_ci"CloseHandle($module, handle, /)\n" 687db96d56Sopenharmony_ci"--\n" 697db96d56Sopenharmony_ci"\n" 707db96d56Sopenharmony_ci"Close handle."); 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ci#define _WINAPI_CLOSEHANDLE_METHODDEF \ 737db96d56Sopenharmony_ci {"CloseHandle", (PyCFunction)_winapi_CloseHandle, METH_O, _winapi_CloseHandle__doc__}, 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_cistatic PyObject * 767db96d56Sopenharmony_ci_winapi_CloseHandle_impl(PyObject *module, HANDLE handle); 777db96d56Sopenharmony_ci 787db96d56Sopenharmony_cistatic PyObject * 797db96d56Sopenharmony_ci_winapi_CloseHandle(PyObject *module, PyObject *arg) 807db96d56Sopenharmony_ci{ 817db96d56Sopenharmony_ci PyObject *return_value = NULL; 827db96d56Sopenharmony_ci HANDLE handle; 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "" F_HANDLE ":CloseHandle", &handle)) { 857db96d56Sopenharmony_ci goto exit; 867db96d56Sopenharmony_ci } 877db96d56Sopenharmony_ci return_value = _winapi_CloseHandle_impl(module, handle); 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ciexit: 907db96d56Sopenharmony_ci return return_value; 917db96d56Sopenharmony_ci} 927db96d56Sopenharmony_ci 937db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_ConnectNamedPipe__doc__, 947db96d56Sopenharmony_ci"ConnectNamedPipe($module, /, handle, overlapped=False)\n" 957db96d56Sopenharmony_ci"--\n" 967db96d56Sopenharmony_ci"\n"); 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci#define _WINAPI_CONNECTNAMEDPIPE_METHODDEF \ 997db96d56Sopenharmony_ci {"ConnectNamedPipe", _PyCFunction_CAST(_winapi_ConnectNamedPipe), METH_FASTCALL|METH_KEYWORDS, _winapi_ConnectNamedPipe__doc__}, 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_cistatic PyObject * 1027db96d56Sopenharmony_ci_winapi_ConnectNamedPipe_impl(PyObject *module, HANDLE handle, 1037db96d56Sopenharmony_ci int use_overlapped); 1047db96d56Sopenharmony_ci 1057db96d56Sopenharmony_cistatic PyObject * 1067db96d56Sopenharmony_ci_winapi_ConnectNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1077db96d56Sopenharmony_ci{ 1087db96d56Sopenharmony_ci PyObject *return_value = NULL; 1097db96d56Sopenharmony_ci static const char * const _keywords[] = {"handle", "overlapped", NULL}; 1107db96d56Sopenharmony_ci static _PyArg_Parser _parser = {"" F_HANDLE "|i:ConnectNamedPipe", _keywords, 0}; 1117db96d56Sopenharmony_ci HANDLE handle; 1127db96d56Sopenharmony_ci int use_overlapped = 0; 1137db96d56Sopenharmony_ci 1147db96d56Sopenharmony_ci if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, 1157db96d56Sopenharmony_ci &handle, &use_overlapped)) { 1167db96d56Sopenharmony_ci goto exit; 1177db96d56Sopenharmony_ci } 1187db96d56Sopenharmony_ci return_value = _winapi_ConnectNamedPipe_impl(module, handle, use_overlapped); 1197db96d56Sopenharmony_ci 1207db96d56Sopenharmony_ciexit: 1217db96d56Sopenharmony_ci return return_value; 1227db96d56Sopenharmony_ci} 1237db96d56Sopenharmony_ci 1247db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CreateFile__doc__, 1257db96d56Sopenharmony_ci"CreateFile($module, file_name, desired_access, share_mode,\n" 1267db96d56Sopenharmony_ci" security_attributes, creation_disposition,\n" 1277db96d56Sopenharmony_ci" flags_and_attributes, template_file, /)\n" 1287db96d56Sopenharmony_ci"--\n" 1297db96d56Sopenharmony_ci"\n"); 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_ci#define _WINAPI_CREATEFILE_METHODDEF \ 1327db96d56Sopenharmony_ci {"CreateFile", _PyCFunction_CAST(_winapi_CreateFile), METH_FASTCALL, _winapi_CreateFile__doc__}, 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_cistatic HANDLE 1357db96d56Sopenharmony_ci_winapi_CreateFile_impl(PyObject *module, LPCTSTR file_name, 1367db96d56Sopenharmony_ci DWORD desired_access, DWORD share_mode, 1377db96d56Sopenharmony_ci LPSECURITY_ATTRIBUTES security_attributes, 1387db96d56Sopenharmony_ci DWORD creation_disposition, 1397db96d56Sopenharmony_ci DWORD flags_and_attributes, HANDLE template_file); 1407db96d56Sopenharmony_ci 1417db96d56Sopenharmony_cistatic PyObject * 1427db96d56Sopenharmony_ci_winapi_CreateFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 1437db96d56Sopenharmony_ci{ 1447db96d56Sopenharmony_ci PyObject *return_value = NULL; 1457db96d56Sopenharmony_ci LPCTSTR file_name; 1467db96d56Sopenharmony_ci DWORD desired_access; 1477db96d56Sopenharmony_ci DWORD share_mode; 1487db96d56Sopenharmony_ci LPSECURITY_ATTRIBUTES security_attributes; 1497db96d56Sopenharmony_ci DWORD creation_disposition; 1507db96d56Sopenharmony_ci DWORD flags_and_attributes; 1517db96d56Sopenharmony_ci HANDLE template_file; 1527db96d56Sopenharmony_ci HANDLE _return_value; 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "skk" F_POINTER "kk" F_HANDLE ":CreateFile", 1557db96d56Sopenharmony_ci &file_name, &desired_access, &share_mode, &security_attributes, &creation_disposition, &flags_and_attributes, &template_file)) { 1567db96d56Sopenharmony_ci goto exit; 1577db96d56Sopenharmony_ci } 1587db96d56Sopenharmony_ci _return_value = _winapi_CreateFile_impl(module, file_name, desired_access, share_mode, security_attributes, creation_disposition, flags_and_attributes, template_file); 1597db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 1607db96d56Sopenharmony_ci goto exit; 1617db96d56Sopenharmony_ci } 1627db96d56Sopenharmony_ci if (_return_value == NULL) { 1637db96d56Sopenharmony_ci Py_RETURN_NONE; 1647db96d56Sopenharmony_ci } 1657db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ciexit: 1687db96d56Sopenharmony_ci return return_value; 1697db96d56Sopenharmony_ci} 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CreateFileMapping__doc__, 1727db96d56Sopenharmony_ci"CreateFileMapping($module, file_handle, security_attributes, protect,\n" 1737db96d56Sopenharmony_ci" max_size_high, max_size_low, name, /)\n" 1747db96d56Sopenharmony_ci"--\n" 1757db96d56Sopenharmony_ci"\n"); 1767db96d56Sopenharmony_ci 1777db96d56Sopenharmony_ci#define _WINAPI_CREATEFILEMAPPING_METHODDEF \ 1787db96d56Sopenharmony_ci {"CreateFileMapping", _PyCFunction_CAST(_winapi_CreateFileMapping), METH_FASTCALL, _winapi_CreateFileMapping__doc__}, 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_cistatic HANDLE 1817db96d56Sopenharmony_ci_winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle, 1827db96d56Sopenharmony_ci LPSECURITY_ATTRIBUTES security_attributes, 1837db96d56Sopenharmony_ci DWORD protect, DWORD max_size_high, 1847db96d56Sopenharmony_ci DWORD max_size_low, LPCWSTR name); 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_cistatic PyObject * 1877db96d56Sopenharmony_ci_winapi_CreateFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 1887db96d56Sopenharmony_ci{ 1897db96d56Sopenharmony_ci PyObject *return_value = NULL; 1907db96d56Sopenharmony_ci HANDLE file_handle; 1917db96d56Sopenharmony_ci LPSECURITY_ATTRIBUTES security_attributes; 1927db96d56Sopenharmony_ci DWORD protect; 1937db96d56Sopenharmony_ci DWORD max_size_high; 1947db96d56Sopenharmony_ci DWORD max_size_low; 1957db96d56Sopenharmony_ci LPCWSTR name = NULL; 1967db96d56Sopenharmony_ci HANDLE _return_value; 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "" F_POINTER "kkkO&:CreateFileMapping", 1997db96d56Sopenharmony_ci &file_handle, &security_attributes, &protect, &max_size_high, &max_size_low, _PyUnicode_WideCharString_Converter, &name)) { 2007db96d56Sopenharmony_ci goto exit; 2017db96d56Sopenharmony_ci } 2027db96d56Sopenharmony_ci _return_value = _winapi_CreateFileMapping_impl(module, file_handle, security_attributes, protect, max_size_high, max_size_low, name); 2037db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 2047db96d56Sopenharmony_ci goto exit; 2057db96d56Sopenharmony_ci } 2067db96d56Sopenharmony_ci if (_return_value == NULL) { 2077db96d56Sopenharmony_ci Py_RETURN_NONE; 2087db96d56Sopenharmony_ci } 2097db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 2107db96d56Sopenharmony_ci 2117db96d56Sopenharmony_ciexit: 2127db96d56Sopenharmony_ci /* Cleanup for name */ 2137db96d56Sopenharmony_ci #if !USE_UNICODE_WCHAR_CACHE 2147db96d56Sopenharmony_ci PyMem_Free((void *)name); 2157db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 2167db96d56Sopenharmony_ci 2177db96d56Sopenharmony_ci return return_value; 2187db96d56Sopenharmony_ci} 2197db96d56Sopenharmony_ci 2207db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CreateJunction__doc__, 2217db96d56Sopenharmony_ci"CreateJunction($module, src_path, dst_path, /)\n" 2227db96d56Sopenharmony_ci"--\n" 2237db96d56Sopenharmony_ci"\n"); 2247db96d56Sopenharmony_ci 2257db96d56Sopenharmony_ci#define _WINAPI_CREATEJUNCTION_METHODDEF \ 2267db96d56Sopenharmony_ci {"CreateJunction", _PyCFunction_CAST(_winapi_CreateJunction), METH_FASTCALL, _winapi_CreateJunction__doc__}, 2277db96d56Sopenharmony_ci 2287db96d56Sopenharmony_cistatic PyObject * 2297db96d56Sopenharmony_ci_winapi_CreateJunction_impl(PyObject *module, LPCWSTR src_path, 2307db96d56Sopenharmony_ci LPCWSTR dst_path); 2317db96d56Sopenharmony_ci 2327db96d56Sopenharmony_cistatic PyObject * 2337db96d56Sopenharmony_ci_winapi_CreateJunction(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 2347db96d56Sopenharmony_ci{ 2357db96d56Sopenharmony_ci PyObject *return_value = NULL; 2367db96d56Sopenharmony_ci LPCWSTR src_path = NULL; 2377db96d56Sopenharmony_ci LPCWSTR dst_path = NULL; 2387db96d56Sopenharmony_ci 2397db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("CreateJunction", nargs, 2, 2)) { 2407db96d56Sopenharmony_ci goto exit; 2417db96d56Sopenharmony_ci } 2427db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 2437db96d56Sopenharmony_ci _PyArg_BadArgument("CreateJunction", "argument 1", "str", args[0]); 2447db96d56Sopenharmony_ci goto exit; 2457db96d56Sopenharmony_ci } 2467db96d56Sopenharmony_ci #if USE_UNICODE_WCHAR_CACHE 2477db96d56Sopenharmony_ci src_path = _PyUnicode_AsUnicode(args[0]); 2487db96d56Sopenharmony_ci #else /* USE_UNICODE_WCHAR_CACHE */ 2497db96d56Sopenharmony_ci src_path = PyUnicode_AsWideCharString(args[0], NULL); 2507db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 2517db96d56Sopenharmony_ci if (src_path == NULL) { 2527db96d56Sopenharmony_ci goto exit; 2537db96d56Sopenharmony_ci } 2547db96d56Sopenharmony_ci if (!PyUnicode_Check(args[1])) { 2557db96d56Sopenharmony_ci _PyArg_BadArgument("CreateJunction", "argument 2", "str", args[1]); 2567db96d56Sopenharmony_ci goto exit; 2577db96d56Sopenharmony_ci } 2587db96d56Sopenharmony_ci #if USE_UNICODE_WCHAR_CACHE 2597db96d56Sopenharmony_ci dst_path = _PyUnicode_AsUnicode(args[1]); 2607db96d56Sopenharmony_ci #else /* USE_UNICODE_WCHAR_CACHE */ 2617db96d56Sopenharmony_ci dst_path = PyUnicode_AsWideCharString(args[1], NULL); 2627db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 2637db96d56Sopenharmony_ci if (dst_path == NULL) { 2647db96d56Sopenharmony_ci goto exit; 2657db96d56Sopenharmony_ci } 2667db96d56Sopenharmony_ci return_value = _winapi_CreateJunction_impl(module, src_path, dst_path); 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ciexit: 2697db96d56Sopenharmony_ci /* Cleanup for src_path */ 2707db96d56Sopenharmony_ci #if !USE_UNICODE_WCHAR_CACHE 2717db96d56Sopenharmony_ci PyMem_Free((void *)src_path); 2727db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 2737db96d56Sopenharmony_ci /* Cleanup for dst_path */ 2747db96d56Sopenharmony_ci #if !USE_UNICODE_WCHAR_CACHE 2757db96d56Sopenharmony_ci PyMem_Free((void *)dst_path); 2767db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 2777db96d56Sopenharmony_ci 2787db96d56Sopenharmony_ci return return_value; 2797db96d56Sopenharmony_ci} 2807db96d56Sopenharmony_ci 2817db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CreateNamedPipe__doc__, 2827db96d56Sopenharmony_ci"CreateNamedPipe($module, name, open_mode, pipe_mode, max_instances,\n" 2837db96d56Sopenharmony_ci" out_buffer_size, in_buffer_size, default_timeout,\n" 2847db96d56Sopenharmony_ci" security_attributes, /)\n" 2857db96d56Sopenharmony_ci"--\n" 2867db96d56Sopenharmony_ci"\n"); 2877db96d56Sopenharmony_ci 2887db96d56Sopenharmony_ci#define _WINAPI_CREATENAMEDPIPE_METHODDEF \ 2897db96d56Sopenharmony_ci {"CreateNamedPipe", _PyCFunction_CAST(_winapi_CreateNamedPipe), METH_FASTCALL, _winapi_CreateNamedPipe__doc__}, 2907db96d56Sopenharmony_ci 2917db96d56Sopenharmony_cistatic HANDLE 2927db96d56Sopenharmony_ci_winapi_CreateNamedPipe_impl(PyObject *module, LPCTSTR name, DWORD open_mode, 2937db96d56Sopenharmony_ci DWORD pipe_mode, DWORD max_instances, 2947db96d56Sopenharmony_ci DWORD out_buffer_size, DWORD in_buffer_size, 2957db96d56Sopenharmony_ci DWORD default_timeout, 2967db96d56Sopenharmony_ci LPSECURITY_ATTRIBUTES security_attributes); 2977db96d56Sopenharmony_ci 2987db96d56Sopenharmony_cistatic PyObject * 2997db96d56Sopenharmony_ci_winapi_CreateNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 3007db96d56Sopenharmony_ci{ 3017db96d56Sopenharmony_ci PyObject *return_value = NULL; 3027db96d56Sopenharmony_ci LPCTSTR name; 3037db96d56Sopenharmony_ci DWORD open_mode; 3047db96d56Sopenharmony_ci DWORD pipe_mode; 3057db96d56Sopenharmony_ci DWORD max_instances; 3067db96d56Sopenharmony_ci DWORD out_buffer_size; 3077db96d56Sopenharmony_ci DWORD in_buffer_size; 3087db96d56Sopenharmony_ci DWORD default_timeout; 3097db96d56Sopenharmony_ci LPSECURITY_ATTRIBUTES security_attributes; 3107db96d56Sopenharmony_ci HANDLE _return_value; 3117db96d56Sopenharmony_ci 3127db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "skkkkkk" F_POINTER ":CreateNamedPipe", 3137db96d56Sopenharmony_ci &name, &open_mode, &pipe_mode, &max_instances, &out_buffer_size, &in_buffer_size, &default_timeout, &security_attributes)) { 3147db96d56Sopenharmony_ci goto exit; 3157db96d56Sopenharmony_ci } 3167db96d56Sopenharmony_ci _return_value = _winapi_CreateNamedPipe_impl(module, name, open_mode, pipe_mode, max_instances, out_buffer_size, in_buffer_size, default_timeout, security_attributes); 3177db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 3187db96d56Sopenharmony_ci goto exit; 3197db96d56Sopenharmony_ci } 3207db96d56Sopenharmony_ci if (_return_value == NULL) { 3217db96d56Sopenharmony_ci Py_RETURN_NONE; 3227db96d56Sopenharmony_ci } 3237db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 3247db96d56Sopenharmony_ci 3257db96d56Sopenharmony_ciexit: 3267db96d56Sopenharmony_ci return return_value; 3277db96d56Sopenharmony_ci} 3287db96d56Sopenharmony_ci 3297db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CreatePipe__doc__, 3307db96d56Sopenharmony_ci"CreatePipe($module, pipe_attrs, size, /)\n" 3317db96d56Sopenharmony_ci"--\n" 3327db96d56Sopenharmony_ci"\n" 3337db96d56Sopenharmony_ci"Create an anonymous pipe.\n" 3347db96d56Sopenharmony_ci"\n" 3357db96d56Sopenharmony_ci" pipe_attrs\n" 3367db96d56Sopenharmony_ci" Ignored internally, can be None.\n" 3377db96d56Sopenharmony_ci"\n" 3387db96d56Sopenharmony_ci"Returns a 2-tuple of handles, to the read and write ends of the pipe."); 3397db96d56Sopenharmony_ci 3407db96d56Sopenharmony_ci#define _WINAPI_CREATEPIPE_METHODDEF \ 3417db96d56Sopenharmony_ci {"CreatePipe", _PyCFunction_CAST(_winapi_CreatePipe), METH_FASTCALL, _winapi_CreatePipe__doc__}, 3427db96d56Sopenharmony_ci 3437db96d56Sopenharmony_cistatic PyObject * 3447db96d56Sopenharmony_ci_winapi_CreatePipe_impl(PyObject *module, PyObject *pipe_attrs, DWORD size); 3457db96d56Sopenharmony_ci 3467db96d56Sopenharmony_cistatic PyObject * 3477db96d56Sopenharmony_ci_winapi_CreatePipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 3487db96d56Sopenharmony_ci{ 3497db96d56Sopenharmony_ci PyObject *return_value = NULL; 3507db96d56Sopenharmony_ci PyObject *pipe_attrs; 3517db96d56Sopenharmony_ci DWORD size; 3527db96d56Sopenharmony_ci 3537db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "Ok:CreatePipe", 3547db96d56Sopenharmony_ci &pipe_attrs, &size)) { 3557db96d56Sopenharmony_ci goto exit; 3567db96d56Sopenharmony_ci } 3577db96d56Sopenharmony_ci return_value = _winapi_CreatePipe_impl(module, pipe_attrs, size); 3587db96d56Sopenharmony_ci 3597db96d56Sopenharmony_ciexit: 3607db96d56Sopenharmony_ci return return_value; 3617db96d56Sopenharmony_ci} 3627db96d56Sopenharmony_ci 3637db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_CreateProcess__doc__, 3647db96d56Sopenharmony_ci"CreateProcess($module, application_name, command_line, proc_attrs,\n" 3657db96d56Sopenharmony_ci" thread_attrs, inherit_handles, creation_flags,\n" 3667db96d56Sopenharmony_ci" env_mapping, current_directory, startup_info, /)\n" 3677db96d56Sopenharmony_ci"--\n" 3687db96d56Sopenharmony_ci"\n" 3697db96d56Sopenharmony_ci"Create a new process and its primary thread.\n" 3707db96d56Sopenharmony_ci"\n" 3717db96d56Sopenharmony_ci" command_line\n" 3727db96d56Sopenharmony_ci" Can be str or None\n" 3737db96d56Sopenharmony_ci" proc_attrs\n" 3747db96d56Sopenharmony_ci" Ignored internally, can be None.\n" 3757db96d56Sopenharmony_ci" thread_attrs\n" 3767db96d56Sopenharmony_ci" Ignored internally, can be None.\n" 3777db96d56Sopenharmony_ci"\n" 3787db96d56Sopenharmony_ci"The return value is a tuple of the process handle, thread handle,\n" 3797db96d56Sopenharmony_ci"process ID, and thread ID."); 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_ci#define _WINAPI_CREATEPROCESS_METHODDEF \ 3827db96d56Sopenharmony_ci {"CreateProcess", _PyCFunction_CAST(_winapi_CreateProcess), METH_FASTCALL, _winapi_CreateProcess__doc__}, 3837db96d56Sopenharmony_ci 3847db96d56Sopenharmony_cistatic PyObject * 3857db96d56Sopenharmony_ci_winapi_CreateProcess_impl(PyObject *module, 3867db96d56Sopenharmony_ci const Py_UNICODE *application_name, 3877db96d56Sopenharmony_ci PyObject *command_line, PyObject *proc_attrs, 3887db96d56Sopenharmony_ci PyObject *thread_attrs, BOOL inherit_handles, 3897db96d56Sopenharmony_ci DWORD creation_flags, PyObject *env_mapping, 3907db96d56Sopenharmony_ci const Py_UNICODE *current_directory, 3917db96d56Sopenharmony_ci PyObject *startup_info); 3927db96d56Sopenharmony_ci 3937db96d56Sopenharmony_cistatic PyObject * 3947db96d56Sopenharmony_ci_winapi_CreateProcess(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 3957db96d56Sopenharmony_ci{ 3967db96d56Sopenharmony_ci PyObject *return_value = NULL; 3977db96d56Sopenharmony_ci const Py_UNICODE *application_name = NULL; 3987db96d56Sopenharmony_ci PyObject *command_line; 3997db96d56Sopenharmony_ci PyObject *proc_attrs; 4007db96d56Sopenharmony_ci PyObject *thread_attrs; 4017db96d56Sopenharmony_ci BOOL inherit_handles; 4027db96d56Sopenharmony_ci DWORD creation_flags; 4037db96d56Sopenharmony_ci PyObject *env_mapping; 4047db96d56Sopenharmony_ci const Py_UNICODE *current_directory = NULL; 4057db96d56Sopenharmony_ci PyObject *startup_info; 4067db96d56Sopenharmony_ci 4077db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "O&OOOikOO&O:CreateProcess", 4087db96d56Sopenharmony_ci _PyUnicode_WideCharString_Opt_Converter, &application_name, &command_line, &proc_attrs, &thread_attrs, &inherit_handles, &creation_flags, &env_mapping, _PyUnicode_WideCharString_Opt_Converter, ¤t_directory, &startup_info)) { 4097db96d56Sopenharmony_ci goto exit; 4107db96d56Sopenharmony_ci } 4117db96d56Sopenharmony_ci return_value = _winapi_CreateProcess_impl(module, application_name, command_line, proc_attrs, thread_attrs, inherit_handles, creation_flags, env_mapping, current_directory, startup_info); 4127db96d56Sopenharmony_ci 4137db96d56Sopenharmony_ciexit: 4147db96d56Sopenharmony_ci /* Cleanup for application_name */ 4157db96d56Sopenharmony_ci #if !USE_UNICODE_WCHAR_CACHE 4167db96d56Sopenharmony_ci PyMem_Free((void *)application_name); 4177db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 4187db96d56Sopenharmony_ci /* Cleanup for current_directory */ 4197db96d56Sopenharmony_ci #if !USE_UNICODE_WCHAR_CACHE 4207db96d56Sopenharmony_ci PyMem_Free((void *)current_directory); 4217db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 4227db96d56Sopenharmony_ci 4237db96d56Sopenharmony_ci return return_value; 4247db96d56Sopenharmony_ci} 4257db96d56Sopenharmony_ci 4267db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_DuplicateHandle__doc__, 4277db96d56Sopenharmony_ci"DuplicateHandle($module, source_process_handle, source_handle,\n" 4287db96d56Sopenharmony_ci" target_process_handle, desired_access, inherit_handle,\n" 4297db96d56Sopenharmony_ci" options=0, /)\n" 4307db96d56Sopenharmony_ci"--\n" 4317db96d56Sopenharmony_ci"\n" 4327db96d56Sopenharmony_ci"Return a duplicate handle object.\n" 4337db96d56Sopenharmony_ci"\n" 4347db96d56Sopenharmony_ci"The duplicate handle refers to the same object as the original\n" 4357db96d56Sopenharmony_ci"handle. Therefore, any changes to the object are reflected\n" 4367db96d56Sopenharmony_ci"through both handles."); 4377db96d56Sopenharmony_ci 4387db96d56Sopenharmony_ci#define _WINAPI_DUPLICATEHANDLE_METHODDEF \ 4397db96d56Sopenharmony_ci {"DuplicateHandle", _PyCFunction_CAST(_winapi_DuplicateHandle), METH_FASTCALL, _winapi_DuplicateHandle__doc__}, 4407db96d56Sopenharmony_ci 4417db96d56Sopenharmony_cistatic HANDLE 4427db96d56Sopenharmony_ci_winapi_DuplicateHandle_impl(PyObject *module, HANDLE source_process_handle, 4437db96d56Sopenharmony_ci HANDLE source_handle, 4447db96d56Sopenharmony_ci HANDLE target_process_handle, 4457db96d56Sopenharmony_ci DWORD desired_access, BOOL inherit_handle, 4467db96d56Sopenharmony_ci DWORD options); 4477db96d56Sopenharmony_ci 4487db96d56Sopenharmony_cistatic PyObject * 4497db96d56Sopenharmony_ci_winapi_DuplicateHandle(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 4507db96d56Sopenharmony_ci{ 4517db96d56Sopenharmony_ci PyObject *return_value = NULL; 4527db96d56Sopenharmony_ci HANDLE source_process_handle; 4537db96d56Sopenharmony_ci HANDLE source_handle; 4547db96d56Sopenharmony_ci HANDLE target_process_handle; 4557db96d56Sopenharmony_ci DWORD desired_access; 4567db96d56Sopenharmony_ci BOOL inherit_handle; 4577db96d56Sopenharmony_ci DWORD options = 0; 4587db96d56Sopenharmony_ci HANDLE _return_value; 4597db96d56Sopenharmony_ci 4607db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "" F_HANDLE "" F_HANDLE "ki|k:DuplicateHandle", 4617db96d56Sopenharmony_ci &source_process_handle, &source_handle, &target_process_handle, &desired_access, &inherit_handle, &options)) { 4627db96d56Sopenharmony_ci goto exit; 4637db96d56Sopenharmony_ci } 4647db96d56Sopenharmony_ci _return_value = _winapi_DuplicateHandle_impl(module, source_process_handle, source_handle, target_process_handle, desired_access, inherit_handle, options); 4657db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 4667db96d56Sopenharmony_ci goto exit; 4677db96d56Sopenharmony_ci } 4687db96d56Sopenharmony_ci if (_return_value == NULL) { 4697db96d56Sopenharmony_ci Py_RETURN_NONE; 4707db96d56Sopenharmony_ci } 4717db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 4727db96d56Sopenharmony_ci 4737db96d56Sopenharmony_ciexit: 4747db96d56Sopenharmony_ci return return_value; 4757db96d56Sopenharmony_ci} 4767db96d56Sopenharmony_ci 4777db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_ExitProcess__doc__, 4787db96d56Sopenharmony_ci"ExitProcess($module, ExitCode, /)\n" 4797db96d56Sopenharmony_ci"--\n" 4807db96d56Sopenharmony_ci"\n"); 4817db96d56Sopenharmony_ci 4827db96d56Sopenharmony_ci#define _WINAPI_EXITPROCESS_METHODDEF \ 4837db96d56Sopenharmony_ci {"ExitProcess", (PyCFunction)_winapi_ExitProcess, METH_O, _winapi_ExitProcess__doc__}, 4847db96d56Sopenharmony_ci 4857db96d56Sopenharmony_cistatic PyObject * 4867db96d56Sopenharmony_ci_winapi_ExitProcess_impl(PyObject *module, UINT ExitCode); 4877db96d56Sopenharmony_ci 4887db96d56Sopenharmony_cistatic PyObject * 4897db96d56Sopenharmony_ci_winapi_ExitProcess(PyObject *module, PyObject *arg) 4907db96d56Sopenharmony_ci{ 4917db96d56Sopenharmony_ci PyObject *return_value = NULL; 4927db96d56Sopenharmony_ci UINT ExitCode; 4937db96d56Sopenharmony_ci 4947db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "I:ExitProcess", &ExitCode)) { 4957db96d56Sopenharmony_ci goto exit; 4967db96d56Sopenharmony_ci } 4977db96d56Sopenharmony_ci return_value = _winapi_ExitProcess_impl(module, ExitCode); 4987db96d56Sopenharmony_ci 4997db96d56Sopenharmony_ciexit: 5007db96d56Sopenharmony_ci return return_value; 5017db96d56Sopenharmony_ci} 5027db96d56Sopenharmony_ci 5037db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetCurrentProcess__doc__, 5047db96d56Sopenharmony_ci"GetCurrentProcess($module, /)\n" 5057db96d56Sopenharmony_ci"--\n" 5067db96d56Sopenharmony_ci"\n" 5077db96d56Sopenharmony_ci"Return a handle object for the current process."); 5087db96d56Sopenharmony_ci 5097db96d56Sopenharmony_ci#define _WINAPI_GETCURRENTPROCESS_METHODDEF \ 5107db96d56Sopenharmony_ci {"GetCurrentProcess", (PyCFunction)_winapi_GetCurrentProcess, METH_NOARGS, _winapi_GetCurrentProcess__doc__}, 5117db96d56Sopenharmony_ci 5127db96d56Sopenharmony_cistatic HANDLE 5137db96d56Sopenharmony_ci_winapi_GetCurrentProcess_impl(PyObject *module); 5147db96d56Sopenharmony_ci 5157db96d56Sopenharmony_cistatic PyObject * 5167db96d56Sopenharmony_ci_winapi_GetCurrentProcess(PyObject *module, PyObject *Py_UNUSED(ignored)) 5177db96d56Sopenharmony_ci{ 5187db96d56Sopenharmony_ci PyObject *return_value = NULL; 5197db96d56Sopenharmony_ci HANDLE _return_value; 5207db96d56Sopenharmony_ci 5217db96d56Sopenharmony_ci _return_value = _winapi_GetCurrentProcess_impl(module); 5227db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 5237db96d56Sopenharmony_ci goto exit; 5247db96d56Sopenharmony_ci } 5257db96d56Sopenharmony_ci if (_return_value == NULL) { 5267db96d56Sopenharmony_ci Py_RETURN_NONE; 5277db96d56Sopenharmony_ci } 5287db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 5297db96d56Sopenharmony_ci 5307db96d56Sopenharmony_ciexit: 5317db96d56Sopenharmony_ci return return_value; 5327db96d56Sopenharmony_ci} 5337db96d56Sopenharmony_ci 5347db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetExitCodeProcess__doc__, 5357db96d56Sopenharmony_ci"GetExitCodeProcess($module, process, /)\n" 5367db96d56Sopenharmony_ci"--\n" 5377db96d56Sopenharmony_ci"\n" 5387db96d56Sopenharmony_ci"Return the termination status of the specified process."); 5397db96d56Sopenharmony_ci 5407db96d56Sopenharmony_ci#define _WINAPI_GETEXITCODEPROCESS_METHODDEF \ 5417db96d56Sopenharmony_ci {"GetExitCodeProcess", (PyCFunction)_winapi_GetExitCodeProcess, METH_O, _winapi_GetExitCodeProcess__doc__}, 5427db96d56Sopenharmony_ci 5437db96d56Sopenharmony_cistatic DWORD 5447db96d56Sopenharmony_ci_winapi_GetExitCodeProcess_impl(PyObject *module, HANDLE process); 5457db96d56Sopenharmony_ci 5467db96d56Sopenharmony_cistatic PyObject * 5477db96d56Sopenharmony_ci_winapi_GetExitCodeProcess(PyObject *module, PyObject *arg) 5487db96d56Sopenharmony_ci{ 5497db96d56Sopenharmony_ci PyObject *return_value = NULL; 5507db96d56Sopenharmony_ci HANDLE process; 5517db96d56Sopenharmony_ci DWORD _return_value; 5527db96d56Sopenharmony_ci 5537db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "" F_HANDLE ":GetExitCodeProcess", &process)) { 5547db96d56Sopenharmony_ci goto exit; 5557db96d56Sopenharmony_ci } 5567db96d56Sopenharmony_ci _return_value = _winapi_GetExitCodeProcess_impl(module, process); 5577db96d56Sopenharmony_ci if ((_return_value == PY_DWORD_MAX) && PyErr_Occurred()) { 5587db96d56Sopenharmony_ci goto exit; 5597db96d56Sopenharmony_ci } 5607db96d56Sopenharmony_ci return_value = Py_BuildValue("k", _return_value); 5617db96d56Sopenharmony_ci 5627db96d56Sopenharmony_ciexit: 5637db96d56Sopenharmony_ci return return_value; 5647db96d56Sopenharmony_ci} 5657db96d56Sopenharmony_ci 5667db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetLastError__doc__, 5677db96d56Sopenharmony_ci"GetLastError($module, /)\n" 5687db96d56Sopenharmony_ci"--\n" 5697db96d56Sopenharmony_ci"\n"); 5707db96d56Sopenharmony_ci 5717db96d56Sopenharmony_ci#define _WINAPI_GETLASTERROR_METHODDEF \ 5727db96d56Sopenharmony_ci {"GetLastError", (PyCFunction)_winapi_GetLastError, METH_NOARGS, _winapi_GetLastError__doc__}, 5737db96d56Sopenharmony_ci 5747db96d56Sopenharmony_cistatic DWORD 5757db96d56Sopenharmony_ci_winapi_GetLastError_impl(PyObject *module); 5767db96d56Sopenharmony_ci 5777db96d56Sopenharmony_cistatic PyObject * 5787db96d56Sopenharmony_ci_winapi_GetLastError(PyObject *module, PyObject *Py_UNUSED(ignored)) 5797db96d56Sopenharmony_ci{ 5807db96d56Sopenharmony_ci PyObject *return_value = NULL; 5817db96d56Sopenharmony_ci DWORD _return_value; 5827db96d56Sopenharmony_ci 5837db96d56Sopenharmony_ci _return_value = _winapi_GetLastError_impl(module); 5847db96d56Sopenharmony_ci if ((_return_value == PY_DWORD_MAX) && PyErr_Occurred()) { 5857db96d56Sopenharmony_ci goto exit; 5867db96d56Sopenharmony_ci } 5877db96d56Sopenharmony_ci return_value = Py_BuildValue("k", _return_value); 5887db96d56Sopenharmony_ci 5897db96d56Sopenharmony_ciexit: 5907db96d56Sopenharmony_ci return return_value; 5917db96d56Sopenharmony_ci} 5927db96d56Sopenharmony_ci 5937db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetModuleFileName__doc__, 5947db96d56Sopenharmony_ci"GetModuleFileName($module, module_handle, /)\n" 5957db96d56Sopenharmony_ci"--\n" 5967db96d56Sopenharmony_ci"\n" 5977db96d56Sopenharmony_ci"Return the fully-qualified path for the file that contains module.\n" 5987db96d56Sopenharmony_ci"\n" 5997db96d56Sopenharmony_ci"The module must have been loaded by the current process.\n" 6007db96d56Sopenharmony_ci"\n" 6017db96d56Sopenharmony_ci"The module parameter should be a handle to the loaded module\n" 6027db96d56Sopenharmony_ci"whose path is being requested. If this parameter is 0,\n" 6037db96d56Sopenharmony_ci"GetModuleFileName retrieves the path of the executable file\n" 6047db96d56Sopenharmony_ci"of the current process."); 6057db96d56Sopenharmony_ci 6067db96d56Sopenharmony_ci#define _WINAPI_GETMODULEFILENAME_METHODDEF \ 6077db96d56Sopenharmony_ci {"GetModuleFileName", (PyCFunction)_winapi_GetModuleFileName, METH_O, _winapi_GetModuleFileName__doc__}, 6087db96d56Sopenharmony_ci 6097db96d56Sopenharmony_cistatic PyObject * 6107db96d56Sopenharmony_ci_winapi_GetModuleFileName_impl(PyObject *module, HMODULE module_handle); 6117db96d56Sopenharmony_ci 6127db96d56Sopenharmony_cistatic PyObject * 6137db96d56Sopenharmony_ci_winapi_GetModuleFileName(PyObject *module, PyObject *arg) 6147db96d56Sopenharmony_ci{ 6157db96d56Sopenharmony_ci PyObject *return_value = NULL; 6167db96d56Sopenharmony_ci HMODULE module_handle; 6177db96d56Sopenharmony_ci 6187db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "" F_HANDLE ":GetModuleFileName", &module_handle)) { 6197db96d56Sopenharmony_ci goto exit; 6207db96d56Sopenharmony_ci } 6217db96d56Sopenharmony_ci return_value = _winapi_GetModuleFileName_impl(module, module_handle); 6227db96d56Sopenharmony_ci 6237db96d56Sopenharmony_ciexit: 6247db96d56Sopenharmony_ci return return_value; 6257db96d56Sopenharmony_ci} 6267db96d56Sopenharmony_ci 6277db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetStdHandle__doc__, 6287db96d56Sopenharmony_ci"GetStdHandle($module, std_handle, /)\n" 6297db96d56Sopenharmony_ci"--\n" 6307db96d56Sopenharmony_ci"\n" 6317db96d56Sopenharmony_ci"Return a handle to the specified standard device.\n" 6327db96d56Sopenharmony_ci"\n" 6337db96d56Sopenharmony_ci" std_handle\n" 6347db96d56Sopenharmony_ci" One of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE.\n" 6357db96d56Sopenharmony_ci"\n" 6367db96d56Sopenharmony_ci"The integer associated with the handle object is returned."); 6377db96d56Sopenharmony_ci 6387db96d56Sopenharmony_ci#define _WINAPI_GETSTDHANDLE_METHODDEF \ 6397db96d56Sopenharmony_ci {"GetStdHandle", (PyCFunction)_winapi_GetStdHandle, METH_O, _winapi_GetStdHandle__doc__}, 6407db96d56Sopenharmony_ci 6417db96d56Sopenharmony_cistatic HANDLE 6427db96d56Sopenharmony_ci_winapi_GetStdHandle_impl(PyObject *module, DWORD std_handle); 6437db96d56Sopenharmony_ci 6447db96d56Sopenharmony_cistatic PyObject * 6457db96d56Sopenharmony_ci_winapi_GetStdHandle(PyObject *module, PyObject *arg) 6467db96d56Sopenharmony_ci{ 6477db96d56Sopenharmony_ci PyObject *return_value = NULL; 6487db96d56Sopenharmony_ci DWORD std_handle; 6497db96d56Sopenharmony_ci HANDLE _return_value; 6507db96d56Sopenharmony_ci 6517db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "k:GetStdHandle", &std_handle)) { 6527db96d56Sopenharmony_ci goto exit; 6537db96d56Sopenharmony_ci } 6547db96d56Sopenharmony_ci _return_value = _winapi_GetStdHandle_impl(module, std_handle); 6557db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 6567db96d56Sopenharmony_ci goto exit; 6577db96d56Sopenharmony_ci } 6587db96d56Sopenharmony_ci if (_return_value == NULL) { 6597db96d56Sopenharmony_ci Py_RETURN_NONE; 6607db96d56Sopenharmony_ci } 6617db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 6627db96d56Sopenharmony_ci 6637db96d56Sopenharmony_ciexit: 6647db96d56Sopenharmony_ci return return_value; 6657db96d56Sopenharmony_ci} 6667db96d56Sopenharmony_ci 6677db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetVersion__doc__, 6687db96d56Sopenharmony_ci"GetVersion($module, /)\n" 6697db96d56Sopenharmony_ci"--\n" 6707db96d56Sopenharmony_ci"\n" 6717db96d56Sopenharmony_ci"Return the version number of the current operating system."); 6727db96d56Sopenharmony_ci 6737db96d56Sopenharmony_ci#define _WINAPI_GETVERSION_METHODDEF \ 6747db96d56Sopenharmony_ci {"GetVersion", (PyCFunction)_winapi_GetVersion, METH_NOARGS, _winapi_GetVersion__doc__}, 6757db96d56Sopenharmony_ci 6767db96d56Sopenharmony_cistatic long 6777db96d56Sopenharmony_ci_winapi_GetVersion_impl(PyObject *module); 6787db96d56Sopenharmony_ci 6797db96d56Sopenharmony_cistatic PyObject * 6807db96d56Sopenharmony_ci_winapi_GetVersion(PyObject *module, PyObject *Py_UNUSED(ignored)) 6817db96d56Sopenharmony_ci{ 6827db96d56Sopenharmony_ci PyObject *return_value = NULL; 6837db96d56Sopenharmony_ci long _return_value; 6847db96d56Sopenharmony_ci 6857db96d56Sopenharmony_ci _return_value = _winapi_GetVersion_impl(module); 6867db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 6877db96d56Sopenharmony_ci goto exit; 6887db96d56Sopenharmony_ci } 6897db96d56Sopenharmony_ci return_value = PyLong_FromLong(_return_value); 6907db96d56Sopenharmony_ci 6917db96d56Sopenharmony_ciexit: 6927db96d56Sopenharmony_ci return return_value; 6937db96d56Sopenharmony_ci} 6947db96d56Sopenharmony_ci 6957db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_MapViewOfFile__doc__, 6967db96d56Sopenharmony_ci"MapViewOfFile($module, file_map, desired_access, file_offset_high,\n" 6977db96d56Sopenharmony_ci" file_offset_low, number_bytes, /)\n" 6987db96d56Sopenharmony_ci"--\n" 6997db96d56Sopenharmony_ci"\n"); 7007db96d56Sopenharmony_ci 7017db96d56Sopenharmony_ci#define _WINAPI_MAPVIEWOFFILE_METHODDEF \ 7027db96d56Sopenharmony_ci {"MapViewOfFile", _PyCFunction_CAST(_winapi_MapViewOfFile), METH_FASTCALL, _winapi_MapViewOfFile__doc__}, 7037db96d56Sopenharmony_ci 7047db96d56Sopenharmony_cistatic LPVOID 7057db96d56Sopenharmony_ci_winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map, 7067db96d56Sopenharmony_ci DWORD desired_access, DWORD file_offset_high, 7077db96d56Sopenharmony_ci DWORD file_offset_low, size_t number_bytes); 7087db96d56Sopenharmony_ci 7097db96d56Sopenharmony_cistatic PyObject * 7107db96d56Sopenharmony_ci_winapi_MapViewOfFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 7117db96d56Sopenharmony_ci{ 7127db96d56Sopenharmony_ci PyObject *return_value = NULL; 7137db96d56Sopenharmony_ci HANDLE file_map; 7147db96d56Sopenharmony_ci DWORD desired_access; 7157db96d56Sopenharmony_ci DWORD file_offset_high; 7167db96d56Sopenharmony_ci DWORD file_offset_low; 7177db96d56Sopenharmony_ci size_t number_bytes; 7187db96d56Sopenharmony_ci LPVOID _return_value; 7197db96d56Sopenharmony_ci 7207db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "kkkO&:MapViewOfFile", 7217db96d56Sopenharmony_ci &file_map, &desired_access, &file_offset_high, &file_offset_low, _PyLong_Size_t_Converter, &number_bytes)) { 7227db96d56Sopenharmony_ci goto exit; 7237db96d56Sopenharmony_ci } 7247db96d56Sopenharmony_ci _return_value = _winapi_MapViewOfFile_impl(module, file_map, desired_access, file_offset_high, file_offset_low, number_bytes); 7257db96d56Sopenharmony_ci if ((_return_value == NULL) && PyErr_Occurred()) { 7267db96d56Sopenharmony_ci goto exit; 7277db96d56Sopenharmony_ci } 7287db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 7297db96d56Sopenharmony_ci 7307db96d56Sopenharmony_ciexit: 7317db96d56Sopenharmony_ci return return_value; 7327db96d56Sopenharmony_ci} 7337db96d56Sopenharmony_ci 7347db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_UnmapViewOfFile__doc__, 7357db96d56Sopenharmony_ci"UnmapViewOfFile($module, address, /)\n" 7367db96d56Sopenharmony_ci"--\n" 7377db96d56Sopenharmony_ci"\n"); 7387db96d56Sopenharmony_ci 7397db96d56Sopenharmony_ci#define _WINAPI_UNMAPVIEWOFFILE_METHODDEF \ 7407db96d56Sopenharmony_ci {"UnmapViewOfFile", (PyCFunction)_winapi_UnmapViewOfFile, METH_O, _winapi_UnmapViewOfFile__doc__}, 7417db96d56Sopenharmony_ci 7427db96d56Sopenharmony_cistatic PyObject * 7437db96d56Sopenharmony_ci_winapi_UnmapViewOfFile_impl(PyObject *module, LPCVOID address); 7447db96d56Sopenharmony_ci 7457db96d56Sopenharmony_cistatic PyObject * 7467db96d56Sopenharmony_ci_winapi_UnmapViewOfFile(PyObject *module, PyObject *arg) 7477db96d56Sopenharmony_ci{ 7487db96d56Sopenharmony_ci PyObject *return_value = NULL; 7497db96d56Sopenharmony_ci LPCVOID address; 7507db96d56Sopenharmony_ci 7517db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "" F_POINTER ":UnmapViewOfFile", &address)) { 7527db96d56Sopenharmony_ci goto exit; 7537db96d56Sopenharmony_ci } 7547db96d56Sopenharmony_ci return_value = _winapi_UnmapViewOfFile_impl(module, address); 7557db96d56Sopenharmony_ci 7567db96d56Sopenharmony_ciexit: 7577db96d56Sopenharmony_ci return return_value; 7587db96d56Sopenharmony_ci} 7597db96d56Sopenharmony_ci 7607db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_OpenFileMapping__doc__, 7617db96d56Sopenharmony_ci"OpenFileMapping($module, desired_access, inherit_handle, name, /)\n" 7627db96d56Sopenharmony_ci"--\n" 7637db96d56Sopenharmony_ci"\n"); 7647db96d56Sopenharmony_ci 7657db96d56Sopenharmony_ci#define _WINAPI_OPENFILEMAPPING_METHODDEF \ 7667db96d56Sopenharmony_ci {"OpenFileMapping", _PyCFunction_CAST(_winapi_OpenFileMapping), METH_FASTCALL, _winapi_OpenFileMapping__doc__}, 7677db96d56Sopenharmony_ci 7687db96d56Sopenharmony_cistatic HANDLE 7697db96d56Sopenharmony_ci_winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access, 7707db96d56Sopenharmony_ci BOOL inherit_handle, LPCWSTR name); 7717db96d56Sopenharmony_ci 7727db96d56Sopenharmony_cistatic PyObject * 7737db96d56Sopenharmony_ci_winapi_OpenFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 7747db96d56Sopenharmony_ci{ 7757db96d56Sopenharmony_ci PyObject *return_value = NULL; 7767db96d56Sopenharmony_ci DWORD desired_access; 7777db96d56Sopenharmony_ci BOOL inherit_handle; 7787db96d56Sopenharmony_ci LPCWSTR name = NULL; 7797db96d56Sopenharmony_ci HANDLE _return_value; 7807db96d56Sopenharmony_ci 7817db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "kiO&:OpenFileMapping", 7827db96d56Sopenharmony_ci &desired_access, &inherit_handle, _PyUnicode_WideCharString_Converter, &name)) { 7837db96d56Sopenharmony_ci goto exit; 7847db96d56Sopenharmony_ci } 7857db96d56Sopenharmony_ci _return_value = _winapi_OpenFileMapping_impl(module, desired_access, inherit_handle, name); 7867db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 7877db96d56Sopenharmony_ci goto exit; 7887db96d56Sopenharmony_ci } 7897db96d56Sopenharmony_ci if (_return_value == NULL) { 7907db96d56Sopenharmony_ci Py_RETURN_NONE; 7917db96d56Sopenharmony_ci } 7927db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 7937db96d56Sopenharmony_ci 7947db96d56Sopenharmony_ciexit: 7957db96d56Sopenharmony_ci /* Cleanup for name */ 7967db96d56Sopenharmony_ci #if !USE_UNICODE_WCHAR_CACHE 7977db96d56Sopenharmony_ci PyMem_Free((void *)name); 7987db96d56Sopenharmony_ci #endif /* USE_UNICODE_WCHAR_CACHE */ 7997db96d56Sopenharmony_ci 8007db96d56Sopenharmony_ci return return_value; 8017db96d56Sopenharmony_ci} 8027db96d56Sopenharmony_ci 8037db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_OpenProcess__doc__, 8047db96d56Sopenharmony_ci"OpenProcess($module, desired_access, inherit_handle, process_id, /)\n" 8057db96d56Sopenharmony_ci"--\n" 8067db96d56Sopenharmony_ci"\n"); 8077db96d56Sopenharmony_ci 8087db96d56Sopenharmony_ci#define _WINAPI_OPENPROCESS_METHODDEF \ 8097db96d56Sopenharmony_ci {"OpenProcess", _PyCFunction_CAST(_winapi_OpenProcess), METH_FASTCALL, _winapi_OpenProcess__doc__}, 8107db96d56Sopenharmony_ci 8117db96d56Sopenharmony_cistatic HANDLE 8127db96d56Sopenharmony_ci_winapi_OpenProcess_impl(PyObject *module, DWORD desired_access, 8137db96d56Sopenharmony_ci BOOL inherit_handle, DWORD process_id); 8147db96d56Sopenharmony_ci 8157db96d56Sopenharmony_cistatic PyObject * 8167db96d56Sopenharmony_ci_winapi_OpenProcess(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 8177db96d56Sopenharmony_ci{ 8187db96d56Sopenharmony_ci PyObject *return_value = NULL; 8197db96d56Sopenharmony_ci DWORD desired_access; 8207db96d56Sopenharmony_ci BOOL inherit_handle; 8217db96d56Sopenharmony_ci DWORD process_id; 8227db96d56Sopenharmony_ci HANDLE _return_value; 8237db96d56Sopenharmony_ci 8247db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "kik:OpenProcess", 8257db96d56Sopenharmony_ci &desired_access, &inherit_handle, &process_id)) { 8267db96d56Sopenharmony_ci goto exit; 8277db96d56Sopenharmony_ci } 8287db96d56Sopenharmony_ci _return_value = _winapi_OpenProcess_impl(module, desired_access, inherit_handle, process_id); 8297db96d56Sopenharmony_ci if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) { 8307db96d56Sopenharmony_ci goto exit; 8317db96d56Sopenharmony_ci } 8327db96d56Sopenharmony_ci if (_return_value == NULL) { 8337db96d56Sopenharmony_ci Py_RETURN_NONE; 8347db96d56Sopenharmony_ci } 8357db96d56Sopenharmony_ci return_value = HANDLE_TO_PYNUM(_return_value); 8367db96d56Sopenharmony_ci 8377db96d56Sopenharmony_ciexit: 8387db96d56Sopenharmony_ci return return_value; 8397db96d56Sopenharmony_ci} 8407db96d56Sopenharmony_ci 8417db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_PeekNamedPipe__doc__, 8427db96d56Sopenharmony_ci"PeekNamedPipe($module, handle, size=0, /)\n" 8437db96d56Sopenharmony_ci"--\n" 8447db96d56Sopenharmony_ci"\n"); 8457db96d56Sopenharmony_ci 8467db96d56Sopenharmony_ci#define _WINAPI_PEEKNAMEDPIPE_METHODDEF \ 8477db96d56Sopenharmony_ci {"PeekNamedPipe", _PyCFunction_CAST(_winapi_PeekNamedPipe), METH_FASTCALL, _winapi_PeekNamedPipe__doc__}, 8487db96d56Sopenharmony_ci 8497db96d56Sopenharmony_cistatic PyObject * 8507db96d56Sopenharmony_ci_winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size); 8517db96d56Sopenharmony_ci 8527db96d56Sopenharmony_cistatic PyObject * 8537db96d56Sopenharmony_ci_winapi_PeekNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 8547db96d56Sopenharmony_ci{ 8557db96d56Sopenharmony_ci PyObject *return_value = NULL; 8567db96d56Sopenharmony_ci HANDLE handle; 8577db96d56Sopenharmony_ci int size = 0; 8587db96d56Sopenharmony_ci 8597db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "|i:PeekNamedPipe", 8607db96d56Sopenharmony_ci &handle, &size)) { 8617db96d56Sopenharmony_ci goto exit; 8627db96d56Sopenharmony_ci } 8637db96d56Sopenharmony_ci return_value = _winapi_PeekNamedPipe_impl(module, handle, size); 8647db96d56Sopenharmony_ci 8657db96d56Sopenharmony_ciexit: 8667db96d56Sopenharmony_ci return return_value; 8677db96d56Sopenharmony_ci} 8687db96d56Sopenharmony_ci 8697db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_LCMapStringEx__doc__, 8707db96d56Sopenharmony_ci"LCMapStringEx($module, /, locale, flags, src)\n" 8717db96d56Sopenharmony_ci"--\n" 8727db96d56Sopenharmony_ci"\n"); 8737db96d56Sopenharmony_ci 8747db96d56Sopenharmony_ci#define _WINAPI_LCMAPSTRINGEX_METHODDEF \ 8757db96d56Sopenharmony_ci {"LCMapStringEx", _PyCFunction_CAST(_winapi_LCMapStringEx), METH_FASTCALL|METH_KEYWORDS, _winapi_LCMapStringEx__doc__}, 8767db96d56Sopenharmony_ci 8777db96d56Sopenharmony_cistatic PyObject * 8787db96d56Sopenharmony_ci_winapi_LCMapStringEx_impl(PyObject *module, PyObject *locale, DWORD flags, 8797db96d56Sopenharmony_ci PyObject *src); 8807db96d56Sopenharmony_ci 8817db96d56Sopenharmony_cistatic PyObject * 8827db96d56Sopenharmony_ci_winapi_LCMapStringEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 8837db96d56Sopenharmony_ci{ 8847db96d56Sopenharmony_ci PyObject *return_value = NULL; 8857db96d56Sopenharmony_ci static const char * const _keywords[] = {"locale", "flags", "src", NULL}; 8867db96d56Sopenharmony_ci static _PyArg_Parser _parser = {"UkU:LCMapStringEx", _keywords, 0}; 8877db96d56Sopenharmony_ci PyObject *locale; 8887db96d56Sopenharmony_ci DWORD flags; 8897db96d56Sopenharmony_ci PyObject *src; 8907db96d56Sopenharmony_ci 8917db96d56Sopenharmony_ci if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, 8927db96d56Sopenharmony_ci &locale, &flags, &src)) { 8937db96d56Sopenharmony_ci goto exit; 8947db96d56Sopenharmony_ci } 8957db96d56Sopenharmony_ci return_value = _winapi_LCMapStringEx_impl(module, locale, flags, src); 8967db96d56Sopenharmony_ci 8977db96d56Sopenharmony_ciexit: 8987db96d56Sopenharmony_ci return return_value; 8997db96d56Sopenharmony_ci} 9007db96d56Sopenharmony_ci 9017db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_ReadFile__doc__, 9027db96d56Sopenharmony_ci"ReadFile($module, /, handle, size, overlapped=False)\n" 9037db96d56Sopenharmony_ci"--\n" 9047db96d56Sopenharmony_ci"\n"); 9057db96d56Sopenharmony_ci 9067db96d56Sopenharmony_ci#define _WINAPI_READFILE_METHODDEF \ 9077db96d56Sopenharmony_ci {"ReadFile", _PyCFunction_CAST(_winapi_ReadFile), METH_FASTCALL|METH_KEYWORDS, _winapi_ReadFile__doc__}, 9087db96d56Sopenharmony_ci 9097db96d56Sopenharmony_cistatic PyObject * 9107db96d56Sopenharmony_ci_winapi_ReadFile_impl(PyObject *module, HANDLE handle, DWORD size, 9117db96d56Sopenharmony_ci int use_overlapped); 9127db96d56Sopenharmony_ci 9137db96d56Sopenharmony_cistatic PyObject * 9147db96d56Sopenharmony_ci_winapi_ReadFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 9157db96d56Sopenharmony_ci{ 9167db96d56Sopenharmony_ci PyObject *return_value = NULL; 9177db96d56Sopenharmony_ci static const char * const _keywords[] = {"handle", "size", "overlapped", NULL}; 9187db96d56Sopenharmony_ci static _PyArg_Parser _parser = {"" F_HANDLE "k|i:ReadFile", _keywords, 0}; 9197db96d56Sopenharmony_ci HANDLE handle; 9207db96d56Sopenharmony_ci DWORD size; 9217db96d56Sopenharmony_ci int use_overlapped = 0; 9227db96d56Sopenharmony_ci 9237db96d56Sopenharmony_ci if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, 9247db96d56Sopenharmony_ci &handle, &size, &use_overlapped)) { 9257db96d56Sopenharmony_ci goto exit; 9267db96d56Sopenharmony_ci } 9277db96d56Sopenharmony_ci return_value = _winapi_ReadFile_impl(module, handle, size, use_overlapped); 9287db96d56Sopenharmony_ci 9297db96d56Sopenharmony_ciexit: 9307db96d56Sopenharmony_ci return return_value; 9317db96d56Sopenharmony_ci} 9327db96d56Sopenharmony_ci 9337db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_SetNamedPipeHandleState__doc__, 9347db96d56Sopenharmony_ci"SetNamedPipeHandleState($module, named_pipe, mode,\n" 9357db96d56Sopenharmony_ci" max_collection_count, collect_data_timeout, /)\n" 9367db96d56Sopenharmony_ci"--\n" 9377db96d56Sopenharmony_ci"\n"); 9387db96d56Sopenharmony_ci 9397db96d56Sopenharmony_ci#define _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF \ 9407db96d56Sopenharmony_ci {"SetNamedPipeHandleState", _PyCFunction_CAST(_winapi_SetNamedPipeHandleState), METH_FASTCALL, _winapi_SetNamedPipeHandleState__doc__}, 9417db96d56Sopenharmony_ci 9427db96d56Sopenharmony_cistatic PyObject * 9437db96d56Sopenharmony_ci_winapi_SetNamedPipeHandleState_impl(PyObject *module, HANDLE named_pipe, 9447db96d56Sopenharmony_ci PyObject *mode, 9457db96d56Sopenharmony_ci PyObject *max_collection_count, 9467db96d56Sopenharmony_ci PyObject *collect_data_timeout); 9477db96d56Sopenharmony_ci 9487db96d56Sopenharmony_cistatic PyObject * 9497db96d56Sopenharmony_ci_winapi_SetNamedPipeHandleState(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 9507db96d56Sopenharmony_ci{ 9517db96d56Sopenharmony_ci PyObject *return_value = NULL; 9527db96d56Sopenharmony_ci HANDLE named_pipe; 9537db96d56Sopenharmony_ci PyObject *mode; 9547db96d56Sopenharmony_ci PyObject *max_collection_count; 9557db96d56Sopenharmony_ci PyObject *collect_data_timeout; 9567db96d56Sopenharmony_ci 9577db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "OOO:SetNamedPipeHandleState", 9587db96d56Sopenharmony_ci &named_pipe, &mode, &max_collection_count, &collect_data_timeout)) { 9597db96d56Sopenharmony_ci goto exit; 9607db96d56Sopenharmony_ci } 9617db96d56Sopenharmony_ci return_value = _winapi_SetNamedPipeHandleState_impl(module, named_pipe, mode, max_collection_count, collect_data_timeout); 9627db96d56Sopenharmony_ci 9637db96d56Sopenharmony_ciexit: 9647db96d56Sopenharmony_ci return return_value; 9657db96d56Sopenharmony_ci} 9667db96d56Sopenharmony_ci 9677db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_TerminateProcess__doc__, 9687db96d56Sopenharmony_ci"TerminateProcess($module, handle, exit_code, /)\n" 9697db96d56Sopenharmony_ci"--\n" 9707db96d56Sopenharmony_ci"\n" 9717db96d56Sopenharmony_ci"Terminate the specified process and all of its threads."); 9727db96d56Sopenharmony_ci 9737db96d56Sopenharmony_ci#define _WINAPI_TERMINATEPROCESS_METHODDEF \ 9747db96d56Sopenharmony_ci {"TerminateProcess", _PyCFunction_CAST(_winapi_TerminateProcess), METH_FASTCALL, _winapi_TerminateProcess__doc__}, 9757db96d56Sopenharmony_ci 9767db96d56Sopenharmony_cistatic PyObject * 9777db96d56Sopenharmony_ci_winapi_TerminateProcess_impl(PyObject *module, HANDLE handle, 9787db96d56Sopenharmony_ci UINT exit_code); 9797db96d56Sopenharmony_ci 9807db96d56Sopenharmony_cistatic PyObject * 9817db96d56Sopenharmony_ci_winapi_TerminateProcess(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 9827db96d56Sopenharmony_ci{ 9837db96d56Sopenharmony_ci PyObject *return_value = NULL; 9847db96d56Sopenharmony_ci HANDLE handle; 9857db96d56Sopenharmony_ci UINT exit_code; 9867db96d56Sopenharmony_ci 9877db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "I:TerminateProcess", 9887db96d56Sopenharmony_ci &handle, &exit_code)) { 9897db96d56Sopenharmony_ci goto exit; 9907db96d56Sopenharmony_ci } 9917db96d56Sopenharmony_ci return_value = _winapi_TerminateProcess_impl(module, handle, exit_code); 9927db96d56Sopenharmony_ci 9937db96d56Sopenharmony_ciexit: 9947db96d56Sopenharmony_ci return return_value; 9957db96d56Sopenharmony_ci} 9967db96d56Sopenharmony_ci 9977db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_VirtualQuerySize__doc__, 9987db96d56Sopenharmony_ci"VirtualQuerySize($module, address, /)\n" 9997db96d56Sopenharmony_ci"--\n" 10007db96d56Sopenharmony_ci"\n"); 10017db96d56Sopenharmony_ci 10027db96d56Sopenharmony_ci#define _WINAPI_VIRTUALQUERYSIZE_METHODDEF \ 10037db96d56Sopenharmony_ci {"VirtualQuerySize", (PyCFunction)_winapi_VirtualQuerySize, METH_O, _winapi_VirtualQuerySize__doc__}, 10047db96d56Sopenharmony_ci 10057db96d56Sopenharmony_cistatic size_t 10067db96d56Sopenharmony_ci_winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address); 10077db96d56Sopenharmony_ci 10087db96d56Sopenharmony_cistatic PyObject * 10097db96d56Sopenharmony_ci_winapi_VirtualQuerySize(PyObject *module, PyObject *arg) 10107db96d56Sopenharmony_ci{ 10117db96d56Sopenharmony_ci PyObject *return_value = NULL; 10127db96d56Sopenharmony_ci LPCVOID address; 10137db96d56Sopenharmony_ci size_t _return_value; 10147db96d56Sopenharmony_ci 10157db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "" F_POINTER ":VirtualQuerySize", &address)) { 10167db96d56Sopenharmony_ci goto exit; 10177db96d56Sopenharmony_ci } 10187db96d56Sopenharmony_ci _return_value = _winapi_VirtualQuerySize_impl(module, address); 10197db96d56Sopenharmony_ci if ((_return_value == (size_t)-1) && PyErr_Occurred()) { 10207db96d56Sopenharmony_ci goto exit; 10217db96d56Sopenharmony_ci } 10227db96d56Sopenharmony_ci return_value = PyLong_FromSize_t(_return_value); 10237db96d56Sopenharmony_ci 10247db96d56Sopenharmony_ciexit: 10257db96d56Sopenharmony_ci return return_value; 10267db96d56Sopenharmony_ci} 10277db96d56Sopenharmony_ci 10287db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_WaitNamedPipe__doc__, 10297db96d56Sopenharmony_ci"WaitNamedPipe($module, name, timeout, /)\n" 10307db96d56Sopenharmony_ci"--\n" 10317db96d56Sopenharmony_ci"\n"); 10327db96d56Sopenharmony_ci 10337db96d56Sopenharmony_ci#define _WINAPI_WAITNAMEDPIPE_METHODDEF \ 10347db96d56Sopenharmony_ci {"WaitNamedPipe", _PyCFunction_CAST(_winapi_WaitNamedPipe), METH_FASTCALL, _winapi_WaitNamedPipe__doc__}, 10357db96d56Sopenharmony_ci 10367db96d56Sopenharmony_cistatic PyObject * 10377db96d56Sopenharmony_ci_winapi_WaitNamedPipe_impl(PyObject *module, LPCTSTR name, DWORD timeout); 10387db96d56Sopenharmony_ci 10397db96d56Sopenharmony_cistatic PyObject * 10407db96d56Sopenharmony_ci_winapi_WaitNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 10417db96d56Sopenharmony_ci{ 10427db96d56Sopenharmony_ci PyObject *return_value = NULL; 10437db96d56Sopenharmony_ci LPCTSTR name; 10447db96d56Sopenharmony_ci DWORD timeout; 10457db96d56Sopenharmony_ci 10467db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "sk:WaitNamedPipe", 10477db96d56Sopenharmony_ci &name, &timeout)) { 10487db96d56Sopenharmony_ci goto exit; 10497db96d56Sopenharmony_ci } 10507db96d56Sopenharmony_ci return_value = _winapi_WaitNamedPipe_impl(module, name, timeout); 10517db96d56Sopenharmony_ci 10527db96d56Sopenharmony_ciexit: 10537db96d56Sopenharmony_ci return return_value; 10547db96d56Sopenharmony_ci} 10557db96d56Sopenharmony_ci 10567db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_WaitForMultipleObjects__doc__, 10577db96d56Sopenharmony_ci"WaitForMultipleObjects($module, handle_seq, wait_flag,\n" 10587db96d56Sopenharmony_ci" milliseconds=_winapi.INFINITE, /)\n" 10597db96d56Sopenharmony_ci"--\n" 10607db96d56Sopenharmony_ci"\n"); 10617db96d56Sopenharmony_ci 10627db96d56Sopenharmony_ci#define _WINAPI_WAITFORMULTIPLEOBJECTS_METHODDEF \ 10637db96d56Sopenharmony_ci {"WaitForMultipleObjects", _PyCFunction_CAST(_winapi_WaitForMultipleObjects), METH_FASTCALL, _winapi_WaitForMultipleObjects__doc__}, 10647db96d56Sopenharmony_ci 10657db96d56Sopenharmony_cistatic PyObject * 10667db96d56Sopenharmony_ci_winapi_WaitForMultipleObjects_impl(PyObject *module, PyObject *handle_seq, 10677db96d56Sopenharmony_ci BOOL wait_flag, DWORD milliseconds); 10687db96d56Sopenharmony_ci 10697db96d56Sopenharmony_cistatic PyObject * 10707db96d56Sopenharmony_ci_winapi_WaitForMultipleObjects(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 10717db96d56Sopenharmony_ci{ 10727db96d56Sopenharmony_ci PyObject *return_value = NULL; 10737db96d56Sopenharmony_ci PyObject *handle_seq; 10747db96d56Sopenharmony_ci BOOL wait_flag; 10757db96d56Sopenharmony_ci DWORD milliseconds = INFINITE; 10767db96d56Sopenharmony_ci 10777db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "Oi|k:WaitForMultipleObjects", 10787db96d56Sopenharmony_ci &handle_seq, &wait_flag, &milliseconds)) { 10797db96d56Sopenharmony_ci goto exit; 10807db96d56Sopenharmony_ci } 10817db96d56Sopenharmony_ci return_value = _winapi_WaitForMultipleObjects_impl(module, handle_seq, wait_flag, milliseconds); 10827db96d56Sopenharmony_ci 10837db96d56Sopenharmony_ciexit: 10847db96d56Sopenharmony_ci return return_value; 10857db96d56Sopenharmony_ci} 10867db96d56Sopenharmony_ci 10877db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_WaitForSingleObject__doc__, 10887db96d56Sopenharmony_ci"WaitForSingleObject($module, handle, milliseconds, /)\n" 10897db96d56Sopenharmony_ci"--\n" 10907db96d56Sopenharmony_ci"\n" 10917db96d56Sopenharmony_ci"Wait for a single object.\n" 10927db96d56Sopenharmony_ci"\n" 10937db96d56Sopenharmony_ci"Wait until the specified object is in the signaled state or\n" 10947db96d56Sopenharmony_ci"the time-out interval elapses. The timeout value is specified\n" 10957db96d56Sopenharmony_ci"in milliseconds."); 10967db96d56Sopenharmony_ci 10977db96d56Sopenharmony_ci#define _WINAPI_WAITFORSINGLEOBJECT_METHODDEF \ 10987db96d56Sopenharmony_ci {"WaitForSingleObject", _PyCFunction_CAST(_winapi_WaitForSingleObject), METH_FASTCALL, _winapi_WaitForSingleObject__doc__}, 10997db96d56Sopenharmony_ci 11007db96d56Sopenharmony_cistatic long 11017db96d56Sopenharmony_ci_winapi_WaitForSingleObject_impl(PyObject *module, HANDLE handle, 11027db96d56Sopenharmony_ci DWORD milliseconds); 11037db96d56Sopenharmony_ci 11047db96d56Sopenharmony_cistatic PyObject * 11057db96d56Sopenharmony_ci_winapi_WaitForSingleObject(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 11067db96d56Sopenharmony_ci{ 11077db96d56Sopenharmony_ci PyObject *return_value = NULL; 11087db96d56Sopenharmony_ci HANDLE handle; 11097db96d56Sopenharmony_ci DWORD milliseconds; 11107db96d56Sopenharmony_ci long _return_value; 11117db96d56Sopenharmony_ci 11127db96d56Sopenharmony_ci if (!_PyArg_ParseStack(args, nargs, "" F_HANDLE "k:WaitForSingleObject", 11137db96d56Sopenharmony_ci &handle, &milliseconds)) { 11147db96d56Sopenharmony_ci goto exit; 11157db96d56Sopenharmony_ci } 11167db96d56Sopenharmony_ci _return_value = _winapi_WaitForSingleObject_impl(module, handle, milliseconds); 11177db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 11187db96d56Sopenharmony_ci goto exit; 11197db96d56Sopenharmony_ci } 11207db96d56Sopenharmony_ci return_value = PyLong_FromLong(_return_value); 11217db96d56Sopenharmony_ci 11227db96d56Sopenharmony_ciexit: 11237db96d56Sopenharmony_ci return return_value; 11247db96d56Sopenharmony_ci} 11257db96d56Sopenharmony_ci 11267db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_WriteFile__doc__, 11277db96d56Sopenharmony_ci"WriteFile($module, /, handle, buffer, overlapped=False)\n" 11287db96d56Sopenharmony_ci"--\n" 11297db96d56Sopenharmony_ci"\n"); 11307db96d56Sopenharmony_ci 11317db96d56Sopenharmony_ci#define _WINAPI_WRITEFILE_METHODDEF \ 11327db96d56Sopenharmony_ci {"WriteFile", _PyCFunction_CAST(_winapi_WriteFile), METH_FASTCALL|METH_KEYWORDS, _winapi_WriteFile__doc__}, 11337db96d56Sopenharmony_ci 11347db96d56Sopenharmony_cistatic PyObject * 11357db96d56Sopenharmony_ci_winapi_WriteFile_impl(PyObject *module, HANDLE handle, PyObject *buffer, 11367db96d56Sopenharmony_ci int use_overlapped); 11377db96d56Sopenharmony_ci 11387db96d56Sopenharmony_cistatic PyObject * 11397db96d56Sopenharmony_ci_winapi_WriteFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 11407db96d56Sopenharmony_ci{ 11417db96d56Sopenharmony_ci PyObject *return_value = NULL; 11427db96d56Sopenharmony_ci static const char * const _keywords[] = {"handle", "buffer", "overlapped", NULL}; 11437db96d56Sopenharmony_ci static _PyArg_Parser _parser = {"" F_HANDLE "O|i:WriteFile", _keywords, 0}; 11447db96d56Sopenharmony_ci HANDLE handle; 11457db96d56Sopenharmony_ci PyObject *buffer; 11467db96d56Sopenharmony_ci int use_overlapped = 0; 11477db96d56Sopenharmony_ci 11487db96d56Sopenharmony_ci if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, 11497db96d56Sopenharmony_ci &handle, &buffer, &use_overlapped)) { 11507db96d56Sopenharmony_ci goto exit; 11517db96d56Sopenharmony_ci } 11527db96d56Sopenharmony_ci return_value = _winapi_WriteFile_impl(module, handle, buffer, use_overlapped); 11537db96d56Sopenharmony_ci 11547db96d56Sopenharmony_ciexit: 11557db96d56Sopenharmony_ci return return_value; 11567db96d56Sopenharmony_ci} 11577db96d56Sopenharmony_ci 11587db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetACP__doc__, 11597db96d56Sopenharmony_ci"GetACP($module, /)\n" 11607db96d56Sopenharmony_ci"--\n" 11617db96d56Sopenharmony_ci"\n" 11627db96d56Sopenharmony_ci"Get the current Windows ANSI code page identifier."); 11637db96d56Sopenharmony_ci 11647db96d56Sopenharmony_ci#define _WINAPI_GETACP_METHODDEF \ 11657db96d56Sopenharmony_ci {"GetACP", (PyCFunction)_winapi_GetACP, METH_NOARGS, _winapi_GetACP__doc__}, 11667db96d56Sopenharmony_ci 11677db96d56Sopenharmony_cistatic PyObject * 11687db96d56Sopenharmony_ci_winapi_GetACP_impl(PyObject *module); 11697db96d56Sopenharmony_ci 11707db96d56Sopenharmony_cistatic PyObject * 11717db96d56Sopenharmony_ci_winapi_GetACP(PyObject *module, PyObject *Py_UNUSED(ignored)) 11727db96d56Sopenharmony_ci{ 11737db96d56Sopenharmony_ci return _winapi_GetACP_impl(module); 11747db96d56Sopenharmony_ci} 11757db96d56Sopenharmony_ci 11767db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi_GetFileType__doc__, 11777db96d56Sopenharmony_ci"GetFileType($module, /, handle)\n" 11787db96d56Sopenharmony_ci"--\n" 11797db96d56Sopenharmony_ci"\n"); 11807db96d56Sopenharmony_ci 11817db96d56Sopenharmony_ci#define _WINAPI_GETFILETYPE_METHODDEF \ 11827db96d56Sopenharmony_ci {"GetFileType", _PyCFunction_CAST(_winapi_GetFileType), METH_FASTCALL|METH_KEYWORDS, _winapi_GetFileType__doc__}, 11837db96d56Sopenharmony_ci 11847db96d56Sopenharmony_cistatic DWORD 11857db96d56Sopenharmony_ci_winapi_GetFileType_impl(PyObject *module, HANDLE handle); 11867db96d56Sopenharmony_ci 11877db96d56Sopenharmony_cistatic PyObject * 11887db96d56Sopenharmony_ci_winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 11897db96d56Sopenharmony_ci{ 11907db96d56Sopenharmony_ci PyObject *return_value = NULL; 11917db96d56Sopenharmony_ci static const char * const _keywords[] = {"handle", NULL}; 11927db96d56Sopenharmony_ci static _PyArg_Parser _parser = {"" F_HANDLE ":GetFileType", _keywords, 0}; 11937db96d56Sopenharmony_ci HANDLE handle; 11947db96d56Sopenharmony_ci DWORD _return_value; 11957db96d56Sopenharmony_ci 11967db96d56Sopenharmony_ci if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser, 11977db96d56Sopenharmony_ci &handle)) { 11987db96d56Sopenharmony_ci goto exit; 11997db96d56Sopenharmony_ci } 12007db96d56Sopenharmony_ci _return_value = _winapi_GetFileType_impl(module, handle); 12017db96d56Sopenharmony_ci if ((_return_value == PY_DWORD_MAX) && PyErr_Occurred()) { 12027db96d56Sopenharmony_ci goto exit; 12037db96d56Sopenharmony_ci } 12047db96d56Sopenharmony_ci return_value = Py_BuildValue("k", _return_value); 12057db96d56Sopenharmony_ci 12067db96d56Sopenharmony_ciexit: 12077db96d56Sopenharmony_ci return return_value; 12087db96d56Sopenharmony_ci} 12097db96d56Sopenharmony_ci 12107db96d56Sopenharmony_ciPyDoc_STRVAR(_winapi__mimetypes_read_windows_registry__doc__, 12117db96d56Sopenharmony_ci"_mimetypes_read_windows_registry($module, /, on_type_read)\n" 12127db96d56Sopenharmony_ci"--\n" 12137db96d56Sopenharmony_ci"\n" 12147db96d56Sopenharmony_ci"Optimized function for reading all known MIME types from the registry.\n" 12157db96d56Sopenharmony_ci"\n" 12167db96d56Sopenharmony_ci"*on_type_read* is a callable taking *type* and *ext* arguments, as for\n" 12177db96d56Sopenharmony_ci"MimeTypes.add_type."); 12187db96d56Sopenharmony_ci 12197db96d56Sopenharmony_ci#define _WINAPI__MIMETYPES_READ_WINDOWS_REGISTRY_METHODDEF \ 12207db96d56Sopenharmony_ci {"_mimetypes_read_windows_registry", _PyCFunction_CAST(_winapi__mimetypes_read_windows_registry), METH_FASTCALL|METH_KEYWORDS, _winapi__mimetypes_read_windows_registry__doc__}, 12217db96d56Sopenharmony_ci 12227db96d56Sopenharmony_cistatic PyObject * 12237db96d56Sopenharmony_ci_winapi__mimetypes_read_windows_registry_impl(PyObject *module, 12247db96d56Sopenharmony_ci PyObject *on_type_read); 12257db96d56Sopenharmony_ci 12267db96d56Sopenharmony_cistatic PyObject * 12277db96d56Sopenharmony_ci_winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 12287db96d56Sopenharmony_ci{ 12297db96d56Sopenharmony_ci PyObject *return_value = NULL; 12307db96d56Sopenharmony_ci static const char * const _keywords[] = {"on_type_read", NULL}; 12317db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "_mimetypes_read_windows_registry", 0}; 12327db96d56Sopenharmony_ci PyObject *argsbuf[1]; 12337db96d56Sopenharmony_ci PyObject *on_type_read; 12347db96d56Sopenharmony_ci 12357db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); 12367db96d56Sopenharmony_ci if (!args) { 12377db96d56Sopenharmony_ci goto exit; 12387db96d56Sopenharmony_ci } 12397db96d56Sopenharmony_ci on_type_read = args[0]; 12407db96d56Sopenharmony_ci return_value = _winapi__mimetypes_read_windows_registry_impl(module, on_type_read); 12417db96d56Sopenharmony_ci 12427db96d56Sopenharmony_ciexit: 12437db96d56Sopenharmony_ci return return_value; 12447db96d56Sopenharmony_ci} 12457db96d56Sopenharmony_ci/*[clinic end generated code: output=9c08a7371fcf5dd4 input=a9049054013a1b77]*/ 1246