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