typedef VMMREGRET (_cdecl *PQUERYHANDLER)(PVOID pvKeyContext, PVALCONTEXT pvalcontextValues, DWORD cvalcontextValues, PBYTE pbData, DWORD* pcbData, DWORD dwReserved);
This is the type definition for the provider, or handler function.
pvKeyContext
This is the key context; it is an input paramater that lets the provider know which key is being queried, if this handler function handles multiple keys.
pvalcontextValues
This is an array of val_context structures; one structure per value. Parts of the val_context structure are input parameters, and parts are output parameters - please see the comments for the val_context structure.
cvalcontextValues
This is the number of val_context structures in the array of the previous argument; it is an input parameter.
pbData
This is a buffer, supplied by the registry to the provider, in which the provider stores the value or values that are queried. If the registry is keeping track of the value lengths, this buffer should always be large enough.
pcbData
A pointer to the length of the above buffer. On input, it contains the size of the available buffer. On output, it should contain the size of the buffer that is actually used / filled.
dwReserved
Reserved.