PopLogNotifyDevice
VOID __stdcall PopLogNotifyDevice(_DEVICE_OBJECT *TargetDevice, _PO_DEVICE_NOTIFY *Notify, _IRP *Irp){
_IO_STACK_LOCATION *CurrentStackLocation;
_DRIVER_OBJECT *DriverObject;
wchar_t *DeviceName;
__int64 v9;
int v10;
__int64 v11[32];
__int64 *v12;
int v13;
int v14;
memset(v11, 0i64, sizeof(v11));
if( (xmmword_140CFB490 & 0x8000) != 0 )
{
CurrentStackLocation = Irp->Tail.CurrentStackLocation;
DriverObject = TargetDevice->DriverObject;
v11[0] = (__int64)Irp;
v11[1] = (__int64)DriverObject->DriverStart;
*(_WORD *)((char *)&v11[2] + 1) = *(_WORD *)&CurrentStackLocation[-1].MajorFunction;
HIDWORD(v11[2]) = CurrentStackLocation[-1].Parameters.Options;
LODWORD(v11[3]) = *(_DWORD *)&CurrentStackLocation[-1].Parameters.FileAttributes;
if( Notify )
{
DeviceName = Notify->DeviceName;
LOBYTE(v11[2]) = Notify->OrderLevel;
if( DeviceName )
{
v9 = -1i64;
do
++v9;
while( DeviceName[v9] );
v10 = v9;
if( (unsigned int)v9 > 0x6C )
v10 = 108;
RtlStringCchCopyW((WCHAR *)&v11[4], 0x6Dui64, &DeviceName[(unsigned int)(v9 - v10)]);
goto LABEL_11;
}
}
else
{
LOBYTE(v11[2]) = 0;
}
LOWORD(v11[4]) = 0;
v10 = 0;
LABEL_11:
v14 = 0;
v12 = v11;
v13 = 2 * v10 + 40;
EtwTraceKernelEvent((__int64)&v12, 1u, 0x80008000, 0x1226u, 0x401802u);
}
}Referenced by:
PopNotifyDevice
PopRequestPowerIrp