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.

124 lines
2.8 KiB

  1. //---------------------------------------------------------------------------
  2. //
  3. // Module: shi.h
  4. //
  5. // Description: Shingle Instance Class
  6. //
  7. //
  8. //@@BEGIN_MSINTERNAL
  9. // Development Team:
  10. // Mike McLaughlin
  11. //
  12. // History: Date Author Comment
  13. //
  14. //@@END_MSINTERNAL
  15. //---------------------------------------------------------------------------
  16. //
  17. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  18. // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  19. // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  20. // PURPOSE.
  21. //
  22. // Copyright (c) 1996-1999 Microsoft Corporation. All Rights Reserved.
  23. //
  24. //---------------------------------------------------------------------------
  25. //---------------------------------------------------------------------------
  26. // Constants and Macros
  27. //---------------------------------------------------------------------------
  28. #define MAX_SYSAUDIO_DEFAULT_TYPE (KSPROPERTY_SYSAUDIO_MIXER_DEFAULT+1)
  29. //---------------------------------------------------------------------------
  30. // Class
  31. //---------------------------------------------------------------------------
  32. typedef class CShingleInstance : public CObj
  33. {
  34. public:
  35. CShingleInstance(
  36. ULONG ulFlags = 0
  37. );
  38. ~CShingleInstance();
  39. static NTSTATUS
  40. InitializeShingle(
  41. );
  42. static VOID
  43. UninitializeShingle(
  44. );
  45. static NTSTATUS
  46. InitializeShingleWorker(
  47. PVOID pReference1,
  48. PVOID pReference2
  49. );
  50. NTSTATUS
  51. Create(
  52. IN PDEVICE_NODE pDeviceNode,
  53. IN LPGUID pguidClass
  54. );
  55. NTSTATUS
  56. SetDeviceNode(
  57. IN PDEVICE_NODE pDeviceNode
  58. );
  59. PDEVICE_NODE
  60. GetDeviceNode(
  61. )
  62. {
  63. return(pDeviceNode);
  64. };
  65. private:
  66. NTSTATUS
  67. CreateCreateItem(
  68. IN PCWSTR pcwstrReference
  69. );
  70. ENUMFUNC
  71. DestroyCreateItem(
  72. IN PKSOBJECT_CREATE_ITEM pCreateItem
  73. );
  74. NTSTATUS
  75. CreateDeviceInterface(
  76. IN LPGUID pguidClass,
  77. IN PCWSTR pcwstrReference
  78. );
  79. NTSTATUS
  80. EnableDeviceInterface(
  81. );
  82. VOID
  83. DisableDeviceInterface(
  84. );
  85. VOID
  86. DestroyDeviceInterface(
  87. );
  88. ListDataAssertLess<KSOBJECT_CREATE_ITEM> lstCreateItem;
  89. UNICODE_STRING ustrSymbolicLinkName;
  90. WCHAR wstrReference[10];
  91. PDEVICE_NODE pDeviceNode;
  92. public:
  93. ULONG ulFlags;
  94. DefineSignature(0x20494853); // SHI
  95. } SHINGLE_INSTANCE, *PSHINGLE_INSTANCE;
  96. //---------------------------------------------------------------------------
  97. // Globals
  98. //---------------------------------------------------------------------------
  99. extern PSHINGLE_INSTANCE apShingleInstance[];
  100. //---------------------------------------------------------------------------