PageRenderTime 53ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/mingw-w64-headers/ddk/include/ddk/strmini.h

https://gitlab.com/ubuntu-trusty/mingw-w64
C Header | 542 lines | 468 code | 74 blank | 0 comment | 5 complexity | 5097c0ed3b88b5a7fe1345b747dd80a5 MD5 | raw file
  1. #ifndef _STREAM_H
  2. #define _STREAM_H
  3. #include <ntddk.h>
  4. #include <windef.h>
  5. #include <ks.h>
  6. #define STREAMAPI __stdcall
  7. #define STREAM_SYSTEM_TIME_MASK ((STREAM_SYSTEM_TIME)0x00000001FFFFFFFF)
  8. typedef enum {
  9. DebugLevelFatal = 0,
  10. DebugLevelError,
  11. DebugLevelWarning,
  12. DebugLevelInfo,
  13. DebugLevelTrace,
  14. DebugLevelVerbose,
  15. DebugLevelMaximum
  16. } STREAM_DEBUG_LEVEL;
  17. #if DBG
  18. #define DebugPrint(x) StreamClassDebugPrint x
  19. #define DEBUG_BREAKPOINT() DbgBreakPoint()
  20. #define DEBUG_ASSERT(exp) \
  21. if ( !(exp) ) { \
  22. StreamClassDebugAssert( __FILE__, __LINE__, #exp, exp); \
  23. }
  24. #else
  25. #define DebugPrint(x)
  26. #define DEBUG_BREAKPOINT()
  27. #define DEBUG_ASSERT(exp)
  28. #endif
  29. typedef PHYSICAL_ADDRESS STREAM_PHYSICAL_ADDRESS, *PSTREAM_PHYSICAL_ADDRESS;
  30. __GNU_EXTENSION typedef unsigned __int64 STREAM_SYSTEM_TIME, *PSTREAM_SYSTEM_TIME;
  31. __GNU_EXTENSION typedef unsigned __int64 STREAM_TIMESTAMP, *PSTREAM_TIMESTAMP;
  32. typedef enum {
  33. TIME_GET_STREAM_TIME,
  34. TIME_READ_ONBOARD_CLOCK,
  35. TIME_SET_ONBOARD_CLOCK
  36. } TIME_FUNCTION;
  37. typedef struct _HW_TIME_CONTEXT {
  38. struct _HW_DEVICE_EXTENSION *HwDeviceExtension;
  39. struct _HW_STREAM_OBJECT *HwStreamObject;
  40. TIME_FUNCTION Function;
  41. ULONGLONG Time;
  42. ULONGLONG SystemTime;
  43. } HW_TIME_CONTEXT, *PHW_TIME_CONTEXT;
  44. typedef struct _HW_EVENT_DESCRIPTOR {
  45. BOOLEAN Enable;
  46. PKSEVENT_ENTRY EventEntry;
  47. PKSEVENTDATA EventData;
  48. __GNU_EXTENSION union {
  49. struct _HW_STREAM_OBJECT * StreamObject;
  50. struct _HW_DEVICE_EXTENSION *DeviceExtension;
  51. };
  52. ULONG EnableEventSetIndex;
  53. PVOID HwInstanceExtension;
  54. ULONG Reserved;
  55. } HW_EVENT_DESCRIPTOR, *PHW_EVENT_DESCRIPTOR;
  56. struct _HW_STREAM_REQUEST_BLOCK;
  57. typedef VOID (STREAMAPI * PHW_RECEIVE_STREAM_DATA_SRB) (IN struct _HW_STREAM_REQUEST_BLOCK * SRB);
  58. typedef VOID (STREAMAPI * PHW_RECEIVE_STREAM_CONTROL_SRB) (IN struct _HW_STREAM_REQUEST_BLOCK * SRB);
  59. typedef NTSTATUS (STREAMAPI * PHW_EVENT_ROUTINE) (IN PHW_EVENT_DESCRIPTOR EventDescriptor);
  60. typedef VOID (STREAMAPI * PHW_CLOCK_FUNCTION) (IN PHW_TIME_CONTEXT HwTimeContext);
  61. typedef struct _HW_CLOCK_OBJECT {
  62. PHW_CLOCK_FUNCTION HwClockFunction;
  63. ULONG ClockSupportFlags;
  64. ULONG Reserved[2];
  65. } HW_CLOCK_OBJECT, *PHW_CLOCK_OBJECT;
  66. #define CLOCK_SUPPORT_CAN_SET_ONBOARD_CLOCK 0x1
  67. #define CLOCK_SUPPORT_CAN_READ_ONBOARD_CLOCK 0x2
  68. #define CLOCK_SUPPORT_CAN_RETURN_STREAM_TIME 0x4
  69. typedef struct _HW_STREAM_OBJECT {
  70. ULONG SizeOfThisPacket;
  71. ULONG StreamNumber;
  72. PVOID HwStreamExtension;
  73. PHW_RECEIVE_STREAM_DATA_SRB ReceiveDataPacket;
  74. PHW_RECEIVE_STREAM_CONTROL_SRB ReceiveControlPacket;
  75. HW_CLOCK_OBJECT HwClockObject;
  76. BOOLEAN Dma;
  77. BOOLEAN Pio;
  78. PVOID HwDeviceExtension;
  79. ULONG StreamHeaderMediaSpecific;
  80. ULONG StreamHeaderWorkspace;
  81. BOOLEAN Allocator;
  82. PHW_EVENT_ROUTINE HwEventRoutine;
  83. ULONG Reserved[2];
  84. } HW_STREAM_OBJECT, *PHW_STREAM_OBJECT;
  85. typedef struct _HW_STREAM_HEADER {
  86. ULONG NumberOfStreams;
  87. ULONG SizeOfHwStreamInformation;
  88. ULONG NumDevPropArrayEntries;
  89. PKSPROPERTY_SET DevicePropertiesArray;
  90. ULONG NumDevEventArrayEntries;
  91. PKSEVENT_SET DeviceEventsArray;
  92. PKSTOPOLOGY Topology;
  93. PHW_EVENT_ROUTINE DeviceEventRoutine;
  94. LONG NumDevMethodArrayEntries;
  95. PKSMETHOD_SET DeviceMethodsArray;
  96. } HW_STREAM_HEADER, *PHW_STREAM_HEADER;
  97. typedef struct _HW_STREAM_INFORMATION {
  98. ULONG NumberOfPossibleInstances;
  99. KSPIN_DATAFLOW DataFlow;
  100. BOOLEAN DataAccessible;
  101. ULONG NumberOfFormatArrayEntries;
  102. PKSDATAFORMAT* StreamFormatsArray;
  103. PVOID ClassReserved[4];
  104. ULONG NumStreamPropArrayEntries;
  105. PKSPROPERTY_SET StreamPropertiesArray;
  106. ULONG NumStreamEventArrayEntries;
  107. PKSEVENT_SET StreamEventsArray;
  108. GUID* Category;
  109. GUID* Name;
  110. ULONG MediumsCount;
  111. const KSPIN_MEDIUM* Mediums;
  112. BOOLEAN BridgeStream;
  113. ULONG Reserved[2];
  114. } HW_STREAM_INFORMATION, *PHW_STREAM_INFORMATION;
  115. typedef struct _HW_STREAM_DESCRIPTOR {
  116. HW_STREAM_HEADER StreamHeader;
  117. HW_STREAM_INFORMATION StreamInfo;
  118. } HW_STREAM_DESCRIPTOR, *PHW_STREAM_DESCRIPTOR;
  119. typedef struct _STREAM_TIME_REFERENCE {
  120. STREAM_TIMESTAMP CurrentOnboardClockValue;
  121. LARGE_INTEGER OnboardClockFrequency;
  122. LARGE_INTEGER CurrentSystemTime;
  123. ULONG Reserved[2];
  124. } STREAM_TIME_REFERENCE, *PSTREAM_TIME_REFERENCE;
  125. typedef struct _STREAM_DATA_INTERSECT_INFO {
  126. ULONG StreamNumber;
  127. PKSDATARANGE DataRange;
  128. PVOID DataFormatBuffer;
  129. ULONG SizeOfDataFormatBuffer;
  130. } STREAM_DATA_INTERSECT_INFO, *PSTREAM_DATA_INTERSECT_INFO;
  131. typedef struct _STREAM_PROPERTY_DESCRIPTOR {
  132. PKSPROPERTY Property;
  133. ULONG PropertySetID;
  134. PVOID PropertyInfo;
  135. ULONG PropertyInputSize;
  136. ULONG PropertyOutputSize;
  137. } STREAM_PROPERTY_DESCRIPTOR, *PSTREAM_PROPERTY_DESCRIPTOR;
  138. typedef struct _STREAM_METHOD_DESCRIPTOR {
  139. ULONG MethodSetID;
  140. PKSMETHOD Method;
  141. PVOID MethodInfo;
  142. LONG MethodInputSize;
  143. LONG MethodOutputSize;
  144. } STREAM_METHOD_DESCRIPTOR, *PSTREAM_METHOD_DESCRIPTOR;
  145. #define STREAM_REQUEST_BLOCK_SIZE sizeof(STREAM_REQUEST_BLOCK)
  146. typedef enum _SRB_COMMAND {
  147. SRB_READ_DATA,
  148. SRB_WRITE_DATA,
  149. SRB_GET_STREAM_STATE,
  150. SRB_SET_STREAM_STATE,
  151. SRB_SET_STREAM_PROPERTY,
  152. SRB_GET_STREAM_PROPERTY,
  153. SRB_OPEN_MASTER_CLOCK,
  154. SRB_INDICATE_MASTER_CLOCK,
  155. SRB_UNKNOWN_STREAM_COMMAND,
  156. SRB_SET_STREAM_RATE,
  157. SRB_PROPOSE_DATA_FORMAT,
  158. SRB_CLOSE_MASTER_CLOCK,
  159. SRB_PROPOSE_STREAM_RATE,
  160. SRB_SET_DATA_FORMAT,
  161. SRB_GET_DATA_FORMAT,
  162. SRB_BEGIN_FLUSH,
  163. SRB_END_FLUSH,
  164. SRB_GET_STREAM_INFO = 0x100,
  165. SRB_OPEN_STREAM,
  166. SRB_CLOSE_STREAM,
  167. SRB_OPEN_DEVICE_INSTANCE,
  168. SRB_CLOSE_DEVICE_INSTANCE,
  169. SRB_GET_DEVICE_PROPERTY,
  170. SRB_SET_DEVICE_PROPERTY,
  171. SRB_INITIALIZE_DEVICE,
  172. SRB_CHANGE_POWER_STATE,
  173. SRB_UNINITIALIZE_DEVICE,
  174. SRB_UNKNOWN_DEVICE_COMMAND,
  175. SRB_PAGING_OUT_DRIVER,
  176. SRB_GET_DATA_INTERSECTION,
  177. SRB_INITIALIZATION_COMPLETE,
  178. SRB_SURPRISE_REMOVAL
  179. #if (NTDDI_VERSION >= NTDDI_WINXP)
  180. ,SRB_DEVICE_METHOD
  181. ,SRB_STREAM_METHOD
  182. #if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
  183. ,SRB_NOTIFY_IDLE_STATE
  184. #endif
  185. #endif
  186. } SRB_COMMAND;
  187. typedef struct {
  188. PHYSICAL_ADDRESS PhysicalAddress;
  189. ULONG Length;
  190. } KSSCATTER_GATHER, *PKSSCATTER_GATHER;
  191. typedef struct _HW_STREAM_REQUEST_BLOCK {
  192. ULONG SizeOfThisPacket;
  193. SRB_COMMAND Command;
  194. NTSTATUS Status;
  195. PHW_STREAM_OBJECT StreamObject;
  196. PVOID HwDeviceExtension;
  197. PVOID SRBExtension;
  198. union _CommandData {
  199. PKSSTREAM_HEADER DataBufferArray;
  200. PHW_STREAM_DESCRIPTOR StreamBuffer;
  201. KSSTATE StreamState;
  202. PSTREAM_TIME_REFERENCE TimeReference;
  203. PSTREAM_PROPERTY_DESCRIPTOR PropertyInfo;
  204. PKSDATAFORMAT OpenFormat;
  205. struct _PORT_CONFIGURATION_INFORMATION *ConfigInfo;
  206. HANDLE MasterClockHandle;
  207. DEVICE_POWER_STATE DeviceState;
  208. PSTREAM_DATA_INTERSECT_INFO IntersectInfo;
  209. #if (NTDDI_VERSION >= NTDDI_WINXP)
  210. PVOID MethodInfo;
  211. LONG FilterTypeIndex;
  212. #if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
  213. BOOLEAN Idle;
  214. #endif
  215. #endif
  216. } CommandData;
  217. ULONG NumberOfBuffers;
  218. ULONG TimeoutCounter;
  219. ULONG TimeoutOriginal;
  220. struct _HW_STREAM_REQUEST_BLOCK *NextSRB;
  221. PIRP Irp;
  222. ULONG Flags;
  223. PVOID HwInstanceExtension;
  224. __GNU_EXTENSION union {
  225. ULONG NumberOfBytesToTransfer;
  226. ULONG ActualBytesTransferred;
  227. };
  228. PKSSCATTER_GATHER ScatterGatherBuffer;
  229. ULONG NumberOfPhysicalPages;
  230. ULONG NumberOfScatterGatherElements;
  231. ULONG Reserved[1];
  232. } HW_STREAM_REQUEST_BLOCK, *PHW_STREAM_REQUEST_BLOCK;
  233. #define SRB_HW_FLAGS_DATA_TRANSFER 0x01
  234. #define SRB_HW_FLAGS_STREAM_REQUEST 0x2
  235. typedef enum {
  236. PerRequestExtension,
  237. DmaBuffer,
  238. SRBDataBuffer
  239. } STREAM_BUFFER_TYPE;
  240. typedef struct _ACCESS_RANGE {
  241. STREAM_PHYSICAL_ADDRESS RangeStart;
  242. ULONG RangeLength;
  243. BOOLEAN RangeInMemory;
  244. ULONG Reserved;
  245. } ACCESS_RANGE, *PACCESS_RANGE;
  246. typedef struct _PORT_CONFIGURATION_INFORMATION {
  247. ULONG SizeOfThisPacket;
  248. PVOID HwDeviceExtension;
  249. PDEVICE_OBJECT ClassDeviceObject;
  250. PDEVICE_OBJECT PhysicalDeviceObject;
  251. ULONG SystemIoBusNumber;
  252. INTERFACE_TYPE AdapterInterfaceType;
  253. ULONG BusInterruptLevel;
  254. ULONG BusInterruptVector;
  255. KINTERRUPT_MODE InterruptMode;
  256. ULONG DmaChannel;
  257. ULONG NumberOfAccessRanges;
  258. PACCESS_RANGE AccessRanges;
  259. ULONG StreamDescriptorSize;
  260. PIRP Irp;
  261. PKINTERRUPT InterruptObject;
  262. PADAPTER_OBJECT DmaAdapterObject;
  263. PDEVICE_OBJECT RealPhysicalDeviceObject;
  264. ULONG Reserved[1];
  265. } PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;
  266. typedef VOID (STREAMAPI * PHW_RECEIVE_DEVICE_SRB) (IN PHW_STREAM_REQUEST_BLOCK SRB);
  267. typedef VOID (STREAMAPI * PHW_CANCEL_SRB) (IN PHW_STREAM_REQUEST_BLOCK SRB);
  268. typedef VOID (STREAMAPI * PHW_REQUEST_TIMEOUT_HANDLER) (IN PHW_STREAM_REQUEST_BLOCK SRB);
  269. typedef BOOLEAN (STREAMAPI * PHW_INTERRUPT) (IN PVOID DeviceExtension);
  270. typedef VOID (STREAMAPI * PHW_TIMER_ROUTINE) (IN PVOID Context);
  271. typedef VOID (STREAMAPI * PHW_PRIORITY_ROUTINE) (IN PVOID Context);
  272. typedef VOID (STREAMAPI * PHW_QUERY_CLOCK_ROUTINE) (IN PHW_TIME_CONTEXT TimeContext);
  273. typedef BOOLEAN (STREAMAPI * PHW_RESET_ADAPTER) (IN PVOID DeviceExtension);
  274. typedef enum _STREAM_MINIDRIVER_STREAM_NOTIFICATION_TYPE {
  275. ReadyForNextStreamDataRequest,
  276. ReadyForNextStreamControlRequest,
  277. HardwareStarved,
  278. StreamRequestComplete,
  279. SignalMultipleStreamEvents,
  280. SignalStreamEvent,
  281. DeleteStreamEvent,
  282. StreamNotificationMaximum
  283. } STREAM_MINIDRIVER_STREAM_NOTIFICATION_TYPE, *PSTREAM_MINIDRIVER_STREAM_NOTIFICATION_TYPE;
  284. typedef enum _STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE {
  285. ReadyForNextDeviceRequest,
  286. DeviceRequestComplete,
  287. SignalMultipleDeviceEvents,
  288. SignalDeviceEvent,
  289. DeleteDeviceEvent,
  290. #if (NTDDI_VERSION >= NTDDI_WINXP)
  291. SignalMultipleDeviceInstanceEvents,
  292. #endif
  293. DeviceNotificationMaximum
  294. } STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE, *PSTREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE;
  295. #define STREAM_CLASS_VERSION_20 0x0200
  296. typedef struct _HW_INITIALIZATION_DATA {
  297. #if (NTDDI_VERSION >= NTDDI_WINXP)
  298. __GNU_EXTENSION union {
  299. ULONG HwInitializationDataSize;
  300. __GNU_EXTENSION struct {
  301. USHORT SizeOfThisPacket;
  302. USHORT StreamClassVersion;
  303. };
  304. };
  305. #else
  306. ULONG HwInitializationDataSize;
  307. #endif /* NTDDI_VERSION >= NTDDI_WINXP */
  308. PHW_INTERRUPT HwInterrupt;
  309. PHW_RECEIVE_DEVICE_SRB HwReceivePacket;
  310. PHW_CANCEL_SRB HwCancelPacket;
  311. PHW_REQUEST_TIMEOUT_HANDLER HwRequestTimeoutHandler;
  312. ULONG DeviceExtensionSize;
  313. ULONG PerRequestExtensionSize;
  314. ULONG PerStreamExtensionSize;
  315. ULONG FilterInstanceExtensionSize;
  316. BOOLEAN BusMasterDMA;
  317. BOOLEAN Dma24BitAddresses;
  318. ULONG BufferAlignment;
  319. BOOLEAN TurnOffSynchronization;
  320. ULONG DmaBufferSize;
  321. #if (NTDDI_VERSION >= NTDDI_WINXP)
  322. ULONG NumNameExtensions;
  323. PWCHAR *NameExtensionArray;
  324. #else
  325. ULONG Reserved[2];
  326. #endif
  327. } HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
  328. typedef enum _STREAM_PRIORITY {
  329. High,
  330. Dispatch,
  331. Low,
  332. LowToHigh
  333. } STREAM_PRIORITY, *PSTREAM_PRIORITY;
  334. VOID
  335. StreamClassAbortOutstandingRequests(
  336. IN PVOID HwDeviceExtension,
  337. IN PHW_STREAM_OBJECT HwStreamObject,
  338. IN NTSTATUS Status
  339. );
  340. VOID
  341. STREAMAPI
  342. StreamClassCallAtNewPriority(
  343. IN PHW_STREAM_OBJECT StreamObject,
  344. IN PVOID HwDeviceExtension,
  345. IN STREAM_PRIORITY Priority,
  346. IN PHW_PRIORITY_ROUTINE PriorityRoutine,
  347. IN PVOID Context
  348. );
  349. VOID
  350. STREAMAPI
  351. StreamClassCompleteRequestAndMarkQueueReady(
  352. IN PHW_STREAM_REQUEST_BLOCK Srb
  353. );
  354. VOID
  355. STREAMAPI
  356. StreamClassDebugAssert(
  357. IN PCHAR File,
  358. IN ULONG Line,
  359. IN PCHAR AssertText,
  360. IN ULONG AssertValue
  361. );
  362. VOID
  363. __cdecl
  364. StreamClassDebugPrint(
  365. IN STREAM_DEBUG_LEVEL DebugPrintLevel,
  366. IN PCCHAR DebugMessage,
  367. ...
  368. );
  369. VOID
  370. __cdecl
  371. StreamClassDeviceNotification(
  372. IN STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE NotificationType,
  373. IN PVOID HwDeviceExtension,
  374. IN PHW_STREAM_REQUEST_BLOCK pSrb,
  375. IN PKSEVENT_ENTRY EventEntry,
  376. IN GUID *EventSet,
  377. IN ULONG EventId
  378. );
  379. VOID
  380. STREAMAPI
  381. StreamClassFilterReenumerateStreams(
  382. IN PVOID HwInstanceExtension,
  383. IN ULONG StreamDescriptorSize
  384. );
  385. PVOID
  386. STREAMAPI
  387. StreamClassGetDmaBuffer(
  388. IN PVOID HwDeviceExtension
  389. );
  390. PKSEVENT_ENTRY
  391. StreamClassGetNextEvent(
  392. IN PVOID HwInstanceExtension_OR_HwDeviceExtension,
  393. IN PHW_STREAM_OBJECT HwStreamObject,
  394. IN GUID * EventGuid,
  395. IN ULONG EventItem,
  396. IN PKSEVENT_ENTRY CurrentEvent
  397. );
  398. STREAM_PHYSICAL_ADDRESS
  399. STREAMAPI
  400. StreamClassGetPhysicalAddress(
  401. IN PVOID HwDeviceExtension,
  402. IN PHW_STREAM_REQUEST_BLOCK HwSRB,
  403. IN PVOID VirtualAddress,
  404. IN STREAM_BUFFER_TYPE Type,
  405. IN ULONG * Length
  406. );
  407. VOID
  408. StreamClassQueryMasterClock(
  409. IN PHW_STREAM_OBJECT HwStreamObject,
  410. IN HANDLE MasterClockHandle,
  411. IN TIME_FUNCTION TimeFunction,
  412. IN PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
  413. );
  414. VOID
  415. STREAMAPI
  416. StreamClassQueryMasterClockSync(
  417. IN HANDLE MasterClockHandle,
  418. IN PHW_TIME_CONTEXT TimeContext
  419. );
  420. BOOLEAN
  421. STREAMAPI
  422. StreamClassReadWriteConfig(
  423. IN PVOID HwDeviceExtension,
  424. IN BOOLEAN Read,
  425. IN PVOID Buffer,
  426. IN ULONG Offset,
  427. IN ULONG Length
  428. );
  429. VOID
  430. STREAMAPI
  431. StreamClassReenumerateStreams(
  432. IN PVOID HwDeviceExtension,
  433. IN ULONG StreamDescriptorSize
  434. );
  435. NTSTATUS
  436. STREAMAPI
  437. StreamClassRegisterAdapter(
  438. IN PVOID Argument1,
  439. IN PVOID Argument2,
  440. IN PHW_INITIALIZATION_DATA HwInitializationData
  441. );
  442. #define StreamClassRegisterMinidriver StreamClassRegisterAdapter
  443. NTSTATUS
  444. StreamClassRegisterFilterWithNoKSPins(
  445. IN PDEVICE_OBJECT DeviceObject,
  446. IN const GUID * InterfaceClassGUID,
  447. IN ULONG PinCount,
  448. IN BOOLEAN * PinDirection,
  449. IN KSPIN_MEDIUM * MediumList,
  450. IN GUID * CategoryList
  451. );
  452. VOID
  453. STREAMAPI
  454. StreamClassScheduleTimer(
  455. IN PHW_STREAM_OBJECT StreamObject,
  456. IN PVOID HwDeviceExtension,
  457. IN ULONG NumberOfMicroseconds,
  458. IN PHW_TIMER_ROUTINE TimerRoutine,
  459. IN PVOID Context
  460. );
  461. VOID
  462. __cdecl
  463. StreamClassStreamNotification(
  464. IN STREAM_MINIDRIVER_STREAM_NOTIFICATION_TYPE NotificationType,
  465. IN PHW_STREAM_OBJECT StreamObject,
  466. IN ...
  467. );
  468. #endif /* _STREAM_H */