{"id":65,"date":"2009-03-16T10:35:27","date_gmt":"2009-03-16T09:35:27","guid":{"rendered":"https:\/\/ridgesolutions.ie\/?p=65"},"modified":"2009-03-16T12:50:04","modified_gmt":"2009-03-16T11:50:04","slug":"shutting-down-windows-from-c","status":"publish","type":"post","link":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/","title":{"rendered":"Shutting Down Windows from C++"},"content":{"rendered":"<p>Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function.\u00a0 However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions &#8211; this type of faffing around can never me remembered so I will post some sample code here in the hopes that it might help me (in\u00a0the future) or maybe someone else:<\/p>\n<pre>\r\n[code lang=\"cpp\"]\r\nbool ShutdownPC(const bool reboot)\r\n{\r\n  HANDLE hToken = NULL;\r\n\r\n\r\n  if(!OpenProcessToken(GetCurrentProcess(),\r\n                       TOKEN_ADJUST_PRIVILEGES |\r\n                       TOKEN_QUERY, &hToken))\r\n  {\r\n    cerr << \"OpenProcessToken() \" << GetLastError();\r\n    return false;\r\n  }\r\n\r\n\r\n  TOKEN_PRIVILEGES tkp;\r\n\r\n  if (!LookupPrivilegeValue(NULL,\r\n                            SE_SHUTDOWN_NAME,\r\n                            &#038;tkp.Privileges[0].Luid))\r\n  {\r\n    cerr << \"LookupPrivilegeValue() \" << GetLastError();\r\n    return false;\r\n  }\r\n\r\n\r\n  tkp.PrivilegeCount = 1;\r\n  tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;\r\n\r\n  if(!AdjustTokenPrivileges(hToken, false,\r\n                         &#038;tkp, 0, NULL, NULL))\r\n  {\r\n    cerr << \"AdjustTokenPrivileges() \" << GetLastError();\r\n    return false;\r\n  }\r\n\r\n  \/\/ And shutdown... with force!\r\n  bool ret = ExitWindowsEx((reboot ? EWX_REBOOT : EWX_SHUTDOWN)\r\n                           | EWX_FORCE | EWX_FORCEIFHUNG,\r\n                           SHTDN_REASON_MAJOR_APPLICATION |\r\n                           SHTDN_REASON_MINOR_MAINTENANCE) == TRUE;\r\n\r\n  if (!ret)\r\n  {\r\n    cerr << \"ExitWindowsEx() \" << GetLastError();\r\n  }\r\n\r\n  return ret;\r\n}\r\n[\/code]<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function.\u00a0 However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions &#8211; this type of faffing around can never me remembered so I will post some sample code [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[11,65],"class_list":["post-65","post","type-post","status-publish","format-standard","hentry","category-tech-stuff","tag-cplusplus","tag-win32"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Kevin Godden\"\/>\n\t<meta name=\"google-site-verification\" content=\"Kyj52YLp6GOPA44PVBffo9fjW8rgWHYYRF0ZYjfy6ss\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Systems and Embedded Software Engineering, Ireland. | Some thoughts of a busy Computer Engineer\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Shutting Down Windows from C++\" \/>\n\t\t<meta property=\"og:description\" content=\"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2009-03-16T09:35:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2009-03-16T11:50:04+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Shutting Down Windows from C++\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#article\",\"name\":\"Shutting Down Windows from C++\",\"headline\":\"Shutting Down Windows from C++\",\"author\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/ridge_logo1.jpg\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#articleImage\",\"width\":400,\"height\":81},\"datePublished\":\"2009-03-16T10:35:27+00:00\",\"dateModified\":\"2009-03-16T12:50:04+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#webpage\"},\"articleSection\":\"Tech Stuff, c++, win32\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ridgesolutions.ie\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/tech-stuff\\\/#listItem\",\"name\":\"Tech Stuff\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/tech-stuff\\\/#listItem\",\"position\":2,\"name\":\"Tech Stuff\",\"item\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/tech-stuff\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#listItem\",\"name\":\"Shutting Down Windows from C++\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#listItem\",\"position\":3,\"name\":\"Shutting Down Windows from C++\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/tech-stuff\\\/#listItem\",\"name\":\"Tech Stuff\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#organization\",\"name\":\"Ridge Solutions, Software Development and Software Engineering, Ireland.\",\"description\":\"Some thoughts of a busy Computer Engineer\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/ridge_logo1.jpg\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#organizationLogo\",\"width\":400,\"height\":81},\"image\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/\",\"name\":\"Kevin Godden\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2833f41e59a25cf2a9741a05ec383bfdd278762a5e0798a90940e7ab0a107a2?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kevin Godden\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#webpage\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/\",\"name\":\"Shutting Down Windows from C++\",\"description\":\"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2009\\\/03\\\/16\\\/shutting-down-windows-from-c\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\"},\"datePublished\":\"2009-03-16T10:35:27+00:00\",\"dateModified\":\"2009-03-16T12:50:04+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#website\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/\",\"name\":\"Ridge Solutions, Software Development and Software Engineering, Ireland.\",\"description\":\"Some thoughts of a busy Computer Engineer\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Shutting Down Windows from C++","description":"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code","canonical_url":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"Kyj52YLp6GOPA44PVBffo9fjW8rgWHYYRF0ZYjfy6ss","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#article","name":"Shutting Down Windows from C++","headline":"Shutting Down Windows from C++","author":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author"},"publisher":{"@id":"https:\/\/www.ridgesolutions.ie\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.ridgesolutions.ie\/wp-content\/uploads\/2013\/09\/ridge_logo1.jpg","@id":"https:\/\/www.ridgesolutions.ie\/#articleImage","width":400,"height":81},"datePublished":"2009-03-16T10:35:27+00:00","dateModified":"2009-03-16T12:50:04+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#webpage"},"isPartOf":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#webpage"},"articleSection":"Tech Stuff, c++, win32"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie#listItem","position":1,"name":"Home","item":"https:\/\/www.ridgesolutions.ie","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/tech-stuff\/#listItem","name":"Tech Stuff"}},{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/tech-stuff\/#listItem","position":2,"name":"Tech Stuff","item":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/tech-stuff\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#listItem","name":"Shutting Down Windows from C++"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#listItem","position":3,"name":"Shutting Down Windows from C++","previousItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/tech-stuff\/#listItem","name":"Tech Stuff"}}]},{"@type":"Organization","@id":"https:\/\/www.ridgesolutions.ie\/#organization","name":"Ridge Solutions, Software Development and Software Engineering, Ireland.","description":"Some thoughts of a busy Computer Engineer","url":"https:\/\/www.ridgesolutions.ie\/","logo":{"@type":"ImageObject","url":"https:\/\/www.ridgesolutions.ie\/wp-content\/uploads\/2013\/09\/ridge_logo1.jpg","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#organizationLogo","width":400,"height":81},"image":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author","url":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/","name":"Kevin Godden","image":{"@type":"ImageObject","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d2833f41e59a25cf2a9741a05ec383bfdd278762a5e0798a90940e7ab0a107a2?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kevin Godden"}},{"@type":"WebPage","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#webpage","url":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/","name":"Shutting Down Windows from C++","description":"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.ridgesolutions.ie\/#website"},"breadcrumb":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/#breadcrumblist"},"author":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author"},"creator":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author"},"datePublished":"2009-03-16T10:35:27+00:00","dateModified":"2009-03-16T12:50:04+00:00"},{"@type":"WebSite","@id":"https:\/\/www.ridgesolutions.ie\/#website","url":"https:\/\/www.ridgesolutions.ie\/","name":"Ridge Solutions, Software Development and Software Engineering, Ireland.","description":"Some thoughts of a busy Computer Engineer","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.ridgesolutions.ie\/#organization"}}]},"og:locale":"en_US","og:site_name":"Systems and Embedded Software Engineering, Ireland. | Some thoughts of a busy Computer Engineer","og:type":"article","og:title":"Shutting Down Windows from C++","og:description":"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code","og:url":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/","article:published_time":"2009-03-16T09:35:27+00:00","article:modified_time":"2009-03-16T11:50:04+00:00","twitter:card":"summary","twitter:title":"Shutting Down Windows from C++","twitter:description":"Windows can be programmatically shutdown using the ExitWindowsEx() Win32 function. However it turns out that the trick to getting it to work is to first grant shutdown priviliges to the calling process via some rather ugly security functions - this type of faffing around can never me remembered so I will post some sample code"},"aioseo_meta_data":{"post_id":"65","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-09-13 21:27:02","updated":"2025-07-15 20:33:20","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ridgesolutions.ie\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ridgesolutions.ie\/index.php\/category\/tech-stuff\/\" title=\"Tech Stuff\">Tech Stuff<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tShutting Down Windows from C++\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.ridgesolutions.ie"},{"label":"Tech Stuff","link":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/tech-stuff\/"},{"label":"Shutting Down Windows from C++","link":"https:\/\/www.ridgesolutions.ie\/index.php\/2009\/03\/16\/shutting-down-windows-from-c\/"}],"_links":{"self":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/posts\/65","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":0,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/tags?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}