diff fuhtark_test/include/winapi/raseapif.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/raseapif.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,153 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _RASEAPIF_
+#define _RASEAPIF_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define RAS_EAP_REGISTRY_LOCATION TEXT("System\\CurrentControlSet\\Services\\Rasman\\PPP\\EAP")
+
+#define RAS_EAP_VALUENAME_PATH TEXT("Path")
+#define RAS_EAP_VALUENAME_CONFIGUI TEXT("ConfigUIPath")
+#define RAS_EAP_VALUENAME_INTERACTIVEUI TEXT("InteractiveUIPath")
+#define RAS_EAP_VALUENAME_IDENTITY TEXT("IdentityPath")
+#define RAS_EAP_VALUENAME_FRIENDLY_NAME TEXT("FriendlyName")
+#define RAS_EAP_VALUENAME_DEFAULT_DATA TEXT("ConfigData")
+#define RAS_EAP_VALUENAME_REQUIRE_CONFIGUI TEXT("RequireConfigUI")
+#define RAS_EAP_VALUENAME_ENCRYPTION TEXT("MPPEEncryptionSupported")
+#define RAS_EAP_VALUENAME_INVOKE_NAMEDLG TEXT("InvokeUsernameDialog")
+#define RAS_EAP_VALUENAME_INVOKE_PWDDLG TEXT("InvokePasswordDialog")
+#define RAS_EAP_VALUENAME_CONFIG_CLSID TEXT("ConfigCLSID")
+#define RAS_EAP_VALUENAME_STANDALONE_SUPPORTED TEXT("StandaloneSupported")
+#define RAS_EAP_VALUENAME_ROLES_SUPPORTED TEXT("RolesSupported")
+#define RAS_EAP_VALUENAME_PER_POLICY_CONFIG TEXT("PerPolicyConfig")
+
+#define RAS_EAP_ROLE_AUTHENTICATOR 0x00000001
+#define RAS_EAP_ROLE_AUTHENTICATEE 0x00000002
+
+#define RAS_EAP_ROLE_EXCLUDE_IN_EAP 0x00000004
+#define RAS_EAP_ROLE_EXCLUDE_IN_PEAP 0x00000008
+#define RAS_EAP_ROLE_EXCLUDE_IN_VPN 0x00000010
+
+  typedef enum _RAS_AUTH_ATTRIBUTE_TYPE_ {
+    raatMinimum = 0,raatUserName,raatUserPassword,raatMD5CHAPPassword,raatNASIPAddress,raatNASPort,raatServiceType,raatFramedProtocol,
+    raatFramedIPAddress,raatFramedIPNetmask,raatFramedRouting = 10,raatFilterId,raatFramedMTU,raatFramedCompression,raatLoginIPHost,
+    raatLoginService,raatLoginTCPPort,raatUnassigned17,raatReplyMessage,raatCallbackNumber,raatCallbackId =20,raatUnassigned21,
+    raatFramedRoute,raatFramedIPXNetwork,raatState,raatClass,raatVendorSpecific,raatSessionTimeout,raatIdleTimeout,raatTerminationAction,
+    raatCalledStationId = 30,raatCallingStationId,raatNASIdentifier,raatProxyState,raatLoginLATService,raatLoginLATNode,raatLoginLATGroup,
+    raatFramedAppleTalkLink,raatFramedAppleTalkNetwork,raatFramedAppleTalkZone,raatAcctStatusType = 40,raatAcctDelayTime,raatAcctInputOctets,
+    raatAcctOutputOctets,raatAcctSessionId,raatAcctAuthentic,raatAcctSessionTime,raatAcctInputPackets,raatAcctOutputPackets,raatAcctTerminateCause,
+    raatAcctMultiSessionId = 50,raatAcctLinkCount,raatAcctEventTimeStamp = 55,raatMD5CHAPChallenge = 60,raatNASPortType,raatPortLimit,raatLoginLATPort,
+    raatTunnelType,raatTunnelMediumType,raatTunnelClientEndpoint,raatTunnelServerEndpoint,raatARAPPassword = 70,raatARAPFeatures,raatARAPZoneAccess,
+    raatARAPSecurity,raatARAPSecurityData,raatPasswordRetry,raatPrompt,raatConnectInfo,raatConfigurationToken,raatEAPMessage,raatSignature = 80,
+    raatARAPChallengeResponse = 84,raatAcctInterimInterval = 85,raatARAPGuestLogon = 8096,raatCertificateOID,raatEAPConfiguration,
+    raatPEAPEmbeddedEAPTypeId,raatPEAPFastRoamedSession,raatEAPTLV = 8102,raatReserved = 0xFFFFFFFF
+  } RAS_AUTH_ATTRIBUTE_TYPE;
+
+#define raatARAPChallenge 33
+#define raatARAPOldPassword 19
+#define raatARAPNewPassword 20
+#define raatARAPPasswordChangeReason 21
+
+  typedef struct _RAS_AUTH_ATTRIBUTE {
+    RAS_AUTH_ATTRIBUTE_TYPE raaType;
+    DWORD dwLength;
+    PVOID Value;
+  } RAS_AUTH_ATTRIBUTE,*PRAS_AUTH_ATTRIBUTE;
+
+#define EAPCODE_Request 1
+#define EAPCODE_Response 2
+#define EAPCODE_Success 3
+#define EAPCODE_Failure 4
+
+#define MAXEAPCODE 4
+
+#define RAS_EAP_FLAG_ROUTER 0x00000001
+#define RAS_EAP_FLAG_NON_INTERACTIVE 0x00000002
+#define RAS_EAP_FLAG_LOGON 0x00000004
+#define RAS_EAP_FLAG_PREVIEW 0x00000008
+#define RAS_EAP_FLAG_FIRST_LINK 0x00000010
+#define RAS_EAP_FLAG_MACHINE_AUTH 0x00000020
+#define RAS_EAP_FLAG_GUEST_ACCESS 0x00000040
+#define RAS_EAP_FLAG_8021X_AUTH 0x00000080
+#define RAS_EAP_FLAG_HOSTED_IN_PEAP 0x00000100
+#define RAS_EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200
+#define RAS_EAP_FLAG_PEAP_UPFRONT 0x00000400
+#define RAS_EAP_FLAG_ALTERNATIVE_USER_DB 0x00000800
+
+  typedef struct _PPP_EAP_PACKET {
+    BYTE Code;
+    BYTE Id;
+    BYTE Length[2];
+    BYTE Data[1];
+  } PPP_EAP_PACKET,*PPPP_EAP_PACKET;
+
+#define PPP_EAP_PACKET_HDR_LEN (sizeof(PPP_EAP_PACKET) - 1)
+
+  typedef struct _PPP_EAP_INPUT {
+    DWORD dwSizeInBytes;
+    DWORD fFlags;
+    WINBOOL fAuthenticator;
+    WCHAR *pwszIdentity;
+    WCHAR *pwszPassword;
+    BYTE bInitialId;
+    RAS_AUTH_ATTRIBUTE *pUserAttributes;
+    WINBOOL fAuthenticationComplete;
+    DWORD dwAuthResultCode;
+    HANDLE hTokenImpersonateUser;
+    WINBOOL fSuccessPacketReceived;
+    WINBOOL fDataReceivedFromInteractiveUI;
+    PBYTE pDataFromInteractiveUI;
+    DWORD dwSizeOfDataFromInteractiveUI;
+    PBYTE pConnectionData;
+    DWORD dwSizeOfConnectionData;
+    PBYTE pUserData;
+    DWORD dwSizeOfUserData;
+    HANDLE hReserved;
+  } PPP_EAP_INPUT,*PPPP_EAP_INPUT;
+
+  typedef enum _PPP_EAP_ACTION {
+    EAPACTION_NoAction,EAPACTION_Authenticate,EAPACTION_Done,EAPACTION_SendAndDone,EAPACTION_Send,EAPACTION_SendWithTimeout,
+    EAPACTION_SendWithTimeoutInteractive,EAPACTION_IndicateTLV,EAPACTION_IndicateIdentity
+  } PPP_EAP_ACTION;
+
+  typedef struct _PPP_EAP_OUTPUT {
+    DWORD dwSizeInBytes;
+    PPP_EAP_ACTION Action;
+    DWORD dwAuthResultCode;
+    RAS_AUTH_ATTRIBUTE *pUserAttributes;
+    WINBOOL fInvokeInteractiveUI;
+    PBYTE pUIContextData;
+    DWORD dwSizeOfUIContextData;
+    WINBOOL fSaveConnectionData;
+    PBYTE pConnectionData;
+    DWORD dwSizeOfConnectionData;
+    WINBOOL fSaveUserData;
+    PBYTE pUserData;
+    DWORD dwSizeOfUserData;
+  } PPP_EAP_OUTPUT,*PPPP_EAP_OUTPUT;
+
+  typedef struct _PPP_EAP_INFO {
+    DWORD dwSizeInBytes;
+    DWORD dwEapTypeId;
+    DWORD (WINAPI *RasEapInitialize)(WINBOOL fInitialize);
+    DWORD (WINAPI *RasEapBegin)(VOID **ppWorkBuffer,PPP_EAP_INPUT *pPppEapInput);
+    DWORD (WINAPI *RasEapEnd)(VOID *pWorkBuffer);
+    DWORD (WINAPI *RasEapMakeMessage)(VOID *pWorkBuf,PPP_EAP_PACKET *pReceivePacket,PPP_EAP_PACKET *pSendPacket,DWORD cbSendPacket,PPP_EAP_OUTPUT *pEapOutput,PPP_EAP_INPUT *pEapInput);
+  } PPP_EAP_INFO,*PPPP_EAP_INFO;
+
+  DWORD WINAPI RasEapGetInfo(DWORD dwEapTypeId,PPP_EAP_INFO *pEapInfo);
+  DWORD WINAPI RasEapFreeMemory(BYTE *pMemory);
+  DWORD WINAPI RasEapInvokeInteractiveUI(DWORD dwEapTypeId,HWND hwndParent,BYTE *pUIContextData,DWORD dwSizeOfUIContextData,BYTE **ppDataFromInteractiveUI,DWORD *pdwSizeOfDataFromInteractiveUI);
+  DWORD WINAPI RasEapInvokeConfigUI(DWORD dwEapTypeId,HWND hwndParent,DWORD dwFlags,BYTE *pConnectionDataIn,DWORD dwSizeOfConnectionDataIn,BYTE **ppConnectionDataOut,DWORD *pdwSizeOfConnectionDataOut);
+  DWORD WINAPI RasEapGetIdentity(DWORD dwEapTypeId,HWND hwndParent,DWORD dwFlags,const WCHAR *pwszPhonebook,const WCHAR *pwszEntry,BYTE *pConnectionDataIn,DWORD dwSizeOfConnectionDataIn,BYTE *pUserDataIn,DWORD dwSizeOfUserDataIn,BYTE **ppUserDataOut,DWORD *pdwSizeOfUserDataOut,WCHAR **ppwszIdentity);
+
+#ifdef __cplusplus
+}
+#endif
+#endif