20 PKSOBJECT_CREATE_ITEM ItemList;
25 if (!DriverObjectExtension)
162 if (!HwDeviceExtension || !StreamDescriptorSize)
166 if (!StreamDescriptor)
242 IN PCCHAR DebugMessage,
#define DO_DEVICE_INITIALIZING
#define STATUS_DEVICE_DOES_NOT_EXIST
return STATUS_NOT_SUPPORTED
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
_IRQL_requires_same_ _In_opt_ PVOID Argument1
NTSTATUS NTAPI StreamClassCreateFilter(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
VOID NTAPI StreamClassInterruptDpc(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
#define IRP_MJ_FLUSH_BUFFERS
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
KSDDKAPI NTSTATUS NTAPI KsAllocateDeviceHeader(OUT KSDEVICE_HEADER *OutHeader, IN ULONG ItemsCount, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL)
PIRP NTAPI IoBuildSynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
NTSTATUS NTAPI StreamClassPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
HW_INITIALIZATION_DATA Data
KSDDKAPI VOID NTAPI KsNullDriverUnload(IN PDRIVER_OBJECT DriverObject)
ULONG DeviceExtensionSize
VOID NTAPI IoDetachDevice(IN PDEVICE_OBJECT TargetDevice)
PDEVICE_OBJECT PhysicalDeviceObject
NTSTATUS NTAPI StreamClassCleanup(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
struct _HW_STREAM_REQUEST_BLOCK HW_STREAM_REQUEST_BLOCK
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
KSDDKAPI NTSTATUS NTAPI KsSetMajorFunctionHandler(IN PDRIVER_OBJECT DriverObject, IN ULONG MajorFunction)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
_In_ WDF_SPECIAL_FILE_TYPE NotificationType
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS NTAPI StreamClassFlushBuffers(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
_In_ PVOID _In_ ULONG Event
#define FILE_AUTOGENERATED_DEVICE_NAME
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
VOID NTAPI StreamClassDebugAssert(IN PCHAR File, IN ULONG Line, IN PCHAR AssertText, IN ULONG AssertValue)
#define NT_SUCCESS(StatCode)
PDEVICE_OBJECT PhysicalDeviceObject
struct STREAM_DEVICE_EXTENSION * PSTREAM_DEVICE_EXTENSION
NTSTATUS STREAMAPI StreamClassRegisterAdapter(IN PVOID Argument1, IN PVOID Argument2, IN PHW_INITIALIZATION_DATA HwInitializationData)
VOID __cdecl StreamClassDebugPrint(IN STREAM_DEBUG_LEVEL DebugPrintLevel, IN PCCHAR DebugMessage,...)
struct _IO_STATUS_BLOCK * PIO_STATUS_BLOCK
PHW_STREAM_DESCRIPTOR StreamDescriptor
#define STATUS_UNSUCCESSFUL
HW_STREAM_REQUEST_BLOCK Block
struct HW_STREAM_REQUEST_BLOCK_EXT * PHW_STREAM_REQUEST_BLOCK_EXT
PHW_STREAM_DESCRIPTOR StreamBuffer
#define ExAllocatePool(type, size)
_In_z_ PCCHAR _In_ PDEVICE_OBJECT LowerDeviceObject
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
#define IRP_MJ_SYSTEM_CONTROL
union _HW_STREAM_REQUEST_BLOCK::_CommandData CommandData
PVOID STREAMAPI StreamClassGetDmaBuffer(IN PVOID HwDeviceExtension)
_In_ ULONG _In_ ULONG Offset
NTSTATUS NTAPI StreamClassAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI StreamClassPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define KeInitializeEvent(pEvt, foo, foo2)
VOID NTAPI StreamClassReenumerateStreams(IN PVOID HwDeviceExtension, IN ULONG StreamDescriptorSize)
NTSTATUS NTAPI StreamClassDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define InitializeListHead(ListHead)
ULONG StreamDescriptorSize
static OUT PIO_STATUS_BLOCK IoStatusBlock
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
void int int ULONGLONG int va_list * ap
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
PSTREAM_CLASS_DRIVER_EXTENSION DriverExtension
VOID __cdecl StreamClassDeviceNotification(IN STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE NotificationType, IN PVOID HwDeviceExtension, IN PHW_STREAM_REQUEST_BLOCK pSrb, IN PKSEVENT_ENTRY EventEntry, IN GUID *EventSet, IN ULONG EventId)
#define RtlCopyMemory(Destination, Source, Length)
BOOLEAN STREAMAPI StreamClassReadWriteConfig(IN PVOID HwDeviceExtension, IN BOOLEAN Read, IN PVOID Buffer, IN ULONG OffSet, IN ULONG Length)
struct _KSEVENT_ENTRY * PKSEVENT_ENTRY
#define FILE_DEVICE_SECURE_OPEN
#define STREAMDEBUG_LEVEL
PDEVICE_OBJECT LowerDeviceObject
LIST_ENTRY MemoryResourceList
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
PHW_RECEIVE_DEVICE_SRB HwReceivePacket
struct _DRIVER_OBJECT * PDRIVER_OBJECT
enum _STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE STREAM_MINIDRIVER_DEVICE_NOTIFICATION_TYPE
NTSTATUS NTAPI StreamClassRWCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA * HwInitializationData
#define IRP_MJ_DEVICE_CONTROL
NTSTATUS NTAPI StreamClassSystemControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)