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