PiUEventHandleIoctl
NTSTATUS __stdcall PiUEventHandleIoctl(_IRP *Irp){
UINT64 v1;
_IO_STATUS_BLOCK *v2;
_IO_STACK_LOCATION *CurrentStackLocation;
NTSTATUS Event;
int v6;
CurrentStackLocation = Irp->Tail.CurrentStackLocation;
switch( *(_DWORD *)&CurrentStackLocation->Parameters.FileAttributes )
{
case 0x470800:
Event = PiUEventHandleRegistration(
CurrentStackLocation->FileObject,
Irp->AssociatedIrp.MasterIrp,
CurrentStackLocation->Parameters.Options,
LODWORD(CurrentStackLocation->Parameters.SecurityContext),
&Irp->IoStatus);
break;
case 0x470804:
Event = PiUEventHandleGetEvent(
CurrentStackLocation->FileObject,
Irp->AssociatedIrp.MasterIrp,
v1,
(_IO_STATUS_BLOCK *)LODWORD(CurrentStackLocation->Parameters.SecurityContext),
&Irp->IoStatus);
break;
case 0x470808:
Event = PiUEventHandleVetoEvent(
CurrentStackLocation->FileObject,
Irp->AssociatedIrp.MasterIrp,
CurrentStackLocation->Parameters.Options,
v2,
&Irp->IoStatus);
break;
case 0x47080C:
Event = PiUEventHandleUnregisterClient(CurrentStackLocation->FileObject);
break;
default:
v6 = -1073741637;
goto LABEL_5;
}
v6 = Event;
LABEL_5:
Irp->IoStatus.Status = v6;
IofCompleteRequest(Irp, 0);
return v6;
}Referenced by:
PiUEventDispatch