33 DPRINT(
"PortClsCreate called\n");
49 IResourceList* resource_list =
NULL;
64 DPRINT(
"IRP_MN_START_DEVICE\n");
71 IoStack->
Parameters.StartDevice.AllocatedResourcesTranslated,
72 IoStack->
Parameters.StartDevice.AllocatedResources);
87 resource_list->Release();
101 DPRINT(
"StartDevice returned a failure code [0x%8x]\n",
Status);
124 DPRINT(
"IRP_MN_REMOVE_DEVICE\n");
145 DPRINT(
"IRP_MN_QUERY_INTERFACE\n");
149 DPRINT(
"IRP_MN_QUERY_DEVICE_RELATIONS\n");
153 DPRINT(
"IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
157 DPRINT(
"IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
161 DPRINT(
"IRP_MN_READ_CONFIG\n");
199 PwrContext->
Irp->IoStatus.Status =
Status;
219 DPRINT(
"PortClsPower called\n");
395 DPRINT(
"PortClsSysControl called\n");
400 Irp->IoStatus.Information = 0;
413 DPRINT(
"PortClsShutdown called\n");
425 Irp->IoStatus.Information = 0;
474 Irp->IoStatus.Information = 0;
514 #undef IoSetCompletionRoutine 515 #define IoSetCompletionRoutine(_Irp, \ 516 _CompletionRoutine, \ 522 PIO_STACK_LOCATION _IrpSp; \ 523 _IrpSp = IoGetNextIrpStackLocation(_Irp); \ 524 _IrpSp->CompletionRoutine = (PIO_COMPLETION_ROUTINE)(_CompletionRoutine); \ 525 _IrpSp->Context = (_Context); \ 526 _IrpSp->Control = 0; \ 527 if (_InvokeOnSuccess) _IrpSp->Control = SL_INVOKE_ON_SUCCESS; \ 528 if (_InvokeOnError) _IrpSp->Control |= SL_INVOKE_ON_ERROR; \ 529 if (_InvokeOnCancel) _IrpSp->Control |= SL_INVOKE_ON_CANCEL; \ 552 if (
Irp->CurrentLocation <
Irp->StackCount + 1)
PDEVICE_OBJECT PrevDeviceObject
PDEVICE_OBJECT DeviceObject
_In_ UCHAR _In_ POWER_STATE PowerState
#define IRP_MN_REMOVE_DEVICE
#define STATUS_INSUFFICIENT_RESOURCES
KSDDKAPI NTSTATUS NTAPI KsDispatchIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_QUERY_POWER
#define STATUS_MORE_PROCESSING_REQUIRED
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
struct PCLASS_DEVICE_EXTENSION * PPCLASS_DEVICE_EXTENSION
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS
#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
NTSTATUS NTAPI PcForwardIrpSynchronous(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
struct QUERY_POWER_CONTEXT * PQUERY_POWER_CONTEXT
IResourceList * resources
PCPFNSTARTDEVICE StartDevice
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)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
FORCEINLINE VOID IoCopyCurrentIrpStackLocationToNext(_Inout_ PIRP Irp)
VOID FreeItem(IN PVOID Item)
DEVICE_POWER_STATE DevicePowerState
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS NTAPI PortClsShutdown(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_In_ PVOID _In_ ULONG Event
#define IoCompleteRequest
NTSTATUS NTAPI PortClsPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_READ_CONFIG
VOID CALLBACK PwrCompletionFunction(IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus)
#define NT_SUCCESS(StatCode)
PDEVICE_OBJECT PhysicalDeviceObject
NTSTATUS NTAPI PortClsSysControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_START_DEVICE
DEVICE_POWER_STATE DeviceState
#define IRP_MN_QUERY_INTERFACE
#define PC_ASSERT_IRQL_EQUAL(x)
#define IRP_MJ_SYSTEM_CONTROL
NTSTATUS NTAPI PortClsCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
IN PDEVICE_OBJECT DeviceObject
PORTCLASSAPI NTSTATUS NTAPI PcNewResourceList(OUT PRESOURCELIST *OutResourceList, IN PUNKNOWN OuterUnknown OPTIONAL, IN POOL_TYPE PoolType, IN PCM_RESOURCE_LIST TranslatedResourceList, IN PCM_RESOURCE_LIST UntranslatedResourceList)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
IAdapterPowerManagement * AdapterPowerManagement
#define KeInitializeEvent(pEvt, foo, foo2)
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MN_QUERY_DEVICE_RELATIONS
NTSTATUS NTAPI PcCompleteIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN NTSTATUS Status)
SYSTEM_POWER_STATE SystemPowerState
NTSTATUS NTAPI CompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
POWER_STATE NTAPI PoSetPowerState(IN PDEVICE_OBJECT DeviceObject, IN POWER_STATE_TYPE Type, IN POWER_STATE State)
NTSTATUS NTAPI PcDispatchIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI PoRequestPowerIrp(IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PREQUEST_POWER_COMPLETE CompletionFunction, IN PVOID Context, OUT PIRP *pIrp OPTIONAL)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
NTSTATUS NTAPI PortClsPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IRP_MJ_DEVICE_CONTROL