PiCMReturnBufferResultData
NTSTATUS __stdcall PiCMReturnBufferResultData(
UINT64 Result,
UINT64 RequiredSize,
UINT64 Type,
const VOID *Buffer,
UINT64 BufferSize,
UINT64 ExpectedOutputSize,
VOID *IoctlOutputBuffer,
UINT64 IoctlOutputBufferSize,
UINT64 *BytesUsed){
NTSTATUS v10;
__int128 v12;
*(_DWORD *)BytesUsed = 0;
v10 = 0;
if( (unsigned int)IoctlOutputBufferSize < (int)BufferSize + 20 || (_DWORD)ExpectedOutputSize != 20 )
return -1073741811;
LODWORD(v12) = 20;
DWORD1(v12) = Result;
DWORD2(v12) = RequiredSize;
HIDWORD(v12) = Type;
ProbeForWrite((UINT64)IoctlOutputBuffer, (unsigned int)IoctlOutputBufferSize, 4i64);
*(_OWORD *)IoctlOutputBuffer = v12;
*((_DWORD *)IoctlOutputBuffer + 4) = 0;
if( (_DWORD)BufferSize )
memmove((char *)IoctlOutputBuffer + 16, Buffer, BufferSize);
*(_DWORD *)BytesUsed = BufferSize + 20;
return v10;
}Referenced by:
PiCMCreateDevice
PiCMEnumerateSubKeys
PiCMGetDeviceIdList
PiCMGetDeviceInterfaceAlias
PiCMGetDeviceInterfaceList
PiCMGetObjectList
PiCMGetObjectProperty
PiCMGetObjectPropertyKeys
PiCMGetRegistryProperty
PiCMGetRelatedDeviceInstance
PiCMQueryRemove
PiCMRegisterDeviceInterface