PiCMDeleteDeviceInterfaceKey
NTSTATUS __stdcall PiCMDeleteDeviceInterfaceKey(
VOID *IoctlInputBuffer,
UINT64 IoctlInputBufferSize,
VOID *IoctlOutputBuffer,
UINT64 IoctlOutputBufferSize,
UINT64 *BytesUsed){
unsigned int v5;
int v7;
INT64 v8;
unsigned int v9;
INT64 v11;
INT64 v12[2];
INT64 v13[2];
UINT64 ExpectedOutputSize;
UINT64 *v15;
v5 = IoctlOutputBufferSize;
*(_DWORD *)v15 = 0;
*(_OWORD *)v12 = 0i64;
*(_OWORD *)v13 = 0i64;
ExpectedOutputSize = 0i64;
v7 = PiCMCaptureObjectInputData(
IoctlInputBuffer,
IoctlInputBufferSize,
(_CMAPI_INPUT_OBJECT_DATA *)(unsigned int)BytesUsed);
if( v7 >= 0 )
{
if( PiAuDoesClientHaveAccess(2ui64) )
{
if( v13[0] && *(INT64 *)((char *)v12 + 4) == 0x400000000i64 && !HIDWORD(v13[1]) && IoctlOutputBuffer && v5 >= 8 )
v9 = CmDeleteDeviceInterfaceRegKey(*(&stru_140CF2E80 + 607), v13[0], 0x32ui64, v8, 1);
else
v9 = -1073741811;
}
else
{
v9 = -1073741790;
}
v7 = PiCMReturnBasicResultData(
v9,
(unsigned int)ExpectedOutputSize,
IoctlOutputBuffer,
v5,
v15,
v11,
v12[0],
v12[1]);
}
PiCMReleaseObjectInputData((_CMAPI_INPUT_OBJECT_DATA *)v12);
return v7;
}Referenced by:
PiCMHandleIoctl