KseDsCallbackHookIrpPnpFunction

VOID __fastcall KseDsCallbackHookIrpPnpFunction(_DEVICE_OBJECT *DeviceObject, _IRP *Irp){
  _IO_STACK_LOCATION *CurrentStackLocation; 
  unsigned int MinorFunction; 
  __int64 MajorFunction; 
  VOID(__stdcall *v7)(_DEVICE_OBJECT *, _IRP *, VOID *); 
  __int64 v8; 
  INT64 Status; 

  CurrentStackLocation = Irp->Tail.CurrentStackLocation;
  MinorFunction = CurrentStackLocation->MinorFunction;
  MajorFunction = CurrentStackLocation->MajorFunction;
  if( !CurrentStackLocation->MinorFunction )
  {
    v7 = KseDsCompletionHookForStartDevice;
LABEL_5:
    (*(void(__fastcall **)(_DEVICE_OBJECT *, _IRP *, VOID(__stdcall *)(_DEVICE_OBJECT *, _IRP *, VOID *), _QWORD))(qword_140C03208 + 8))(
      DeviceObject,
      Irp,
      v7,
      0i64);
    goto LABEL_6;
  }
  if( MinorFunction == 4 )
  {
    v7 = KseDsCompletionHookForStopDevice;
    goto LABEL_5;
  }
LABEL_6:
  v8 = (*(__int64(__fastcall **)(_DRIVER_OBJECT *))qword_140C03208)(DeviceObject->DriverObject);
  LODWORD(Status) = (*(__int64(__fastcall **)(_DEVICE_OBJECT *, _IRP *))(v8 + 8 * MajorFunction + 32))(
                      DeviceObject,
                      Irp);
  KsepDsEventPnpIrp(DeviceObject->DriverObject, DeviceObject, Irp, MinorFunction, Status);
}

Referenced by:

No references.