34 DPRINT(
"PcInitializeAdapterDriver\n");
38 DPRINT(
"Setting IRP handlers\n");
49 DPRINT(
"Setting KS function handlers\n");
58 DPRINT(
"PortCls has finished initializing the adapter driver\n");
85 DPRINT(
"PcAddAdapterDevice called\n");
97 if ( DeviceExtensionSize != 0 )
117 DPRINT(
"IoCreateDevice() failed with status 0x%08lx\n",
status);
153 fdo->
Flags &= ~ DO_DEVICE_INITIALIZING;
166 if (PrevDeviceObject)
213 ISubdevice *SubDevice;
227 DPRINT(
"PcRegisterSubdevice invalid parameter\n");
245 DPRINT(
"No ISubdevice interface\n");
251 Status = SubDevice->GetDescriptor(&SubDeviceDescriptor);
254 DPRINT(
"Failed to get subdevice descriptor %x\n",
Status);
255 SubDevice->Release();
264 SubDevice->Release();
265 DPRINT(
"KsAddObjectCreateItemToDeviceHeader failed with %x\n",
Status);
305 SubDevice->Release();
NTSTATUS NTAPI PcAddAdapterDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PCPFNSTARTDEVICE StartDevice, IN ULONG MaxObjects, IN ULONG DeviceExtensionSize)
NTSTATUS NTAPI PcInitializeAdapterDriver(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPathName, IN PDRIVER_ADD_DEVICE AddDevice)
NTSTATUS NTAPI PcRegisterSubdevice(IN PDEVICE_OBJECT DeviceObject, IN PWCHAR Name, IN PUNKNOWN Unknown)
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
PDEVICE_OBJECT PhysicalDeviceObject
#define FILE_DEVICE_SECURE_OPEN
#define NT_SUCCESS(StatCode)
static void cleanup(void)
KSDDKAPI NTSTATUS NTAPI KsAllocateDeviceHeader(OUT KSDEVICE_HEADER *OutHeader, IN ULONG ItemsCount, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL)
KSDDKAPI NTSTATUS NTAPI KsAddObjectCreateItemToDeviceHeader(IN KSDEVICE_HEADER DevHeader, IN PDRIVER_DISPATCH Create, IN PVOID Context, IN PWCHAR ObjectClass, IN PSECURITY_DESCRIPTOR SecurityDescriptor)
KSDDKAPI VOID NTAPI KsFreeDeviceHeader(IN KSDEVICE_HEADER DevHeader)
KSDDKAPI NTSTATUS NTAPI KsSetMajorFunctionHandler(IN PDRIVER_OBJECT DriverObject, IN ULONG MajorFunction)
VOID NTAPI PcIoTimerRoutine(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
#define InsertTailList(ListHead, Entry)
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
NTSYSAPI void WINAPI DbgBreakPoint(void)
NTSTATUS NTAPI IoInitializeTimer(IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context)
VOID NTAPI IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI PcDispatchIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
VOID FreeItem(IN PVOID Item)
#define FILE_AUTOGENERATED_DEVICE_NAME
static BOOL StartDevice(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DevInfoData OPTIONAL, IN BOOL bEnable, IN DWORD HardwareProfile OPTIONAL, OUT BOOL *bNeedReboot OPTIONAL)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
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)
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
DRIVER_ADD_DEVICE AddDevice
NTSTATUS NTAPI PcCreateItemDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define PORT_CLASS_DEVICE_EXTENSION_SIZE
NTSTATUS(NTAPI * PCPFNSTARTDEVICE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PRESOURCELIST ResourceList)
#define PC_ASSERT_IRQL_EQUAL(x)
struct PCLASS_DEVICE_EXTENSION * PPCLASS_DEVICE_EXTENSION
#define IRP_MJ_DEVICE_CONTROL
KSDEVICE_HEADER KsDeviceHeader
PDEVICE_OBJECT PhysicalDeviceObject
PDEVICE_OBJECT PrevDeviceObject
KSOBJECT_CREATE_ITEM * CreateItems
PCPFNSTARTDEVICE StartDevice
LIST_ENTRY SymbolicLinkList
UNICODE_STRING SymbolicLink
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
DRIVER_ADD_DEVICE * PDRIVER_ADD_DEVICE
#define IRP_MJ_QUERY_SECURITY
#define IRP_MJ_SYSTEM_CONTROL
#define IRP_MJ_FLUSH_BUFFERS
#define IRP_MJ_SET_SECURITY