37 DPRINT(
"PcInitializeAdapterDriver\n");
41 DPRINT(
"Setting IRP handlers\n");
52 DPRINT(
"Setting KS function handlers\n");
61 DPRINT(
"PortCls has finished initializing the adapter driver\n");
88 DPRINT(
"PcAddAdapterDevice called\n");
100 if ( DeviceExtensionSize != 0 )
120 DPRINT(
"IoCreateDevice() failed with status 0x%08lx\n",
status);
169 if (PrevDeviceObject)
217 ISubdevice *SubDevice;
231 DPRINT(
"PcRegisterSubdevice invalid parameter\n");
249 DPRINT(
"No ISubdevice interface\n");
255 Status = SubDevice->GetDescriptor(&SubDeviceDescriptor);
258 DPRINT(
"Failed to get subdevice descriptor %x\n",
Status);
269 DPRINT(
"KsAddObjectCreateItemToDeviceHeader failed with %x\n",
Status);
#define DO_DEVICE_INITIALIZING
PDEVICE_OBJECT PrevDeviceObject
#define STATUS_INSUFFICIENT_RESOURCES
VOID NTAPI PcIoTimerRoutine(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
#define IRP_MJ_QUERY_SECURITY
#define IRP_MJ_FLUSH_BUFFERS
VOID NTAPI IoStartTimer(IN PDEVICE_OBJECT DeviceObject)
KSDDKAPI NTSTATUS NTAPI KsAllocateDeviceHeader(OUT KSDEVICE_HEADER *OutHeader, IN ULONG ItemsCount, IN PKSOBJECT_CREATE_ITEM ItemsList OPTIONAL)
struct PCLASS_DEVICE_EXTENSION * PPCLASS_DEVICE_EXTENSION
#define STATUS_INVALID_PARAMETER
#define IRP_MJ_SET_SECURITY
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
#define InsertTailList(ListHead, Entry)
PCPFNSTARTDEVICE StartDevice
struct SYMBOLICLINK_ENTRY * PSYMBOLICLINK_ENTRY
KSDDKAPI NTSTATUS NTAPI KsSetMajorFunctionHandler(IN PDRIVER_OBJECT DriverObject, IN ULONG MajorFunction)
#define PORT_CLASS_DEVICE_EXTENSION_SIZE
VOID FreeItem(IN PVOID Item)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PDEVICE_OBJECT NTAPI IoAttachDeviceToDeviceStack(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice)
PDRIVER_EXTENSION DriverExtension
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
NTSTATUS NTAPI PcAddAdapterDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PCPFNSTARTDEVICE StartDevice, IN ULONG MaxObjects, IN ULONG DeviceExtensionSize)
static PDRIVER_OBJECT DriverObject
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
#define FILE_AUTOGENERATED_DEVICE_NAME
NTSTATUS(NTAPI * PCPFNSTARTDEVICE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PRESOURCELIST ResourceList)
KSDEVICE_HEADER KsDeviceHeader
#define NT_SUCCESS(StatCode)
PDEVICE_OBJECT PhysicalDeviceObject
NTSTATUS NTAPI IoInitializeTimer(IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context)
static const UCHAR Index[8]
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define PC_ASSERT_IRQL_EQUAL(x)
#define STATUS_UNSUCCESSFUL
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)
NTSTATUS NTAPI PcInitializeAdapterDriver(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPathName, IN PDRIVER_ADD_DEVICE AddDevice)
#define IRP_MJ_SYSTEM_CONTROL
KSOBJECT_CREATE_ITEM * CreateItems
IN PDEVICE_OBJECT DeviceObject
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
PDRIVER_ADD_DEVICE AddDevice
NTSTATUS NTAPI PcCreateItemDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
#define InitializeListHead(ListHead)
DRIVER_ADD_DEVICE * PDRIVER_ADD_DEVICE
NTSTATUS NTAPI IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject)
UNICODE_STRING SymbolicLink
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
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)
char * cleanup(char *str)
#define FILE_DEVICE_SECURE_OPEN
NTSTATUS NTAPI PcDispatchIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
static SERVICE_STATUS status
NTSTATUS NTAPI StartDevice(PDEVICE_OBJECT DeviceObject, PIRP Irp, PRESOURCELIST ResourceList)
NTSTATUS NTAPI AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT PhysicalDeviceObject)
NTSTATUS NTAPI PcRegisterSubdevice(IN PDEVICE_OBJECT DeviceObject, IN PWCHAR Name, IN PUNKNOWN Unknown)
#define IRP_MJ_DEVICE_CONTROL
LIST_ENTRY SymbolicLinkList