Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
2.1 KiB

  1. /*++
  2. Copyright (c) 2001 Microsoft Corporation
  3. All rights reserved
  4. Module Name:
  5. lsaapim.cxx
  6. Abstract:
  7. This file provides useful accssors and mutators.
  8. Author:
  9. Larry Zhu (LZhu) May 1, 2001 Created
  10. Environment:
  11. User Mode -Win32
  12. Revision History:
  13. --*/
  14. #include "precomp.hxx"
  15. #pragma hdrstop
  16. #include "lsaapim.hxx"
  17. TSPM_API_MESSAGE::TSPM_API_MESSAGE(void) : m_hr(E_FAIL)
  18. {
  19. }
  20. TSPM_API_MESSAGE::TSPM_API_MESSAGE(IN ULONG64 baseOffset)
  21. : m_baseOffset(baseOffset), m_hr(E_FAIL)
  22. {
  23. m_hr = Initialize();
  24. }
  25. TSPM_API_MESSAGE::~TSPM_API_MESSAGE(void)
  26. {
  27. }
  28. HRESULT TSPM_API_MESSAGE::IsValid(void) const
  29. {
  30. return m_hr;
  31. }
  32. ULONG TSPM_API_MESSAGE::GetdwAPI(void) const
  33. {
  34. DWORD dwAPI = 0;
  35. ReadStructField(m_baseOffset, kstrSpmApiMsg, "dwAPI", sizeof(dwAPI), &dwAPI);
  36. return dwAPI;
  37. }
  38. HRESULT TSPM_API_MESSAGE::GetscRet(void) const
  39. {
  40. HRESULT scRet = E_FAIL;
  41. ReadStructField(m_baseOffset, kstrSpmApiMsg, "scRet", sizeof(scRet), &scRet);
  42. return scRet;
  43. }
  44. ULONG64 TSPM_API_MESSAGE::GetbData() const
  45. {
  46. static ULONG fieldOffset = ReadFieldOffset(kstrSpmApiMsg, "bData");
  47. return m_baseOffset + fieldOffset;
  48. }
  49. /******************************************************************************
  50. Private Methods
  51. ******************************************************************************/
  52. /*++
  53. Routine Name:
  54. Initialize
  55. Routine Description:
  56. Do necessary initialization.
  57. Arguments:
  58. None
  59. Return Value:
  60. An HRESULT
  61. --*/
  62. HRESULT TSPM_API_MESSAGE::Initialize(void)
  63. {
  64. HRESULT hRetval = E_FAIL;
  65. ULONG fieldOffset = 0;
  66. hRetval = NO_ERROR == GetFieldOffset(kstrSpmApiMsg, "Args", &fieldOffset) ? S_OK : E_FAIL;
  67. if (SUCCEEDED(hRetval)) {
  68. hRetval = TSPM_LSA_ARGUMENTS::Initialize(m_baseOffset + fieldOffset);
  69. }
  70. return hRetval;
  71. }
  72. HRESULT TSPM_API_MESSAGE::Initialize(IN ULONG64 baseOffset)
  73. {
  74. m_baseOffset = baseOffset;
  75. m_hr = Initialize();
  76. return m_hr;
  77. }