177 (WmiInstanceConfig->UseContextForQuery ||
178 WmiInstanceConfig->EvtWmiInstanceQueryInstance !=
NULL ||
179 WmiInstanceConfig->EvtWmiInstanceSetInstance !=
NULL ||
180 WmiInstanceConfig->EvtWmiInstanceSetItem !=
NULL ||
181 WmiInstanceConfig->EvtWmiInstanceExecuteMethod !=
NULL)) {
187 "WDFWMIPROVIDER %p is event only and UseContextForQuery (%d) is TRUE," 188 " or a callback (query instance %p, set instance %p, set item %p, " 189 "executue method %p) is not NULL, %!STATUS!",
190 Provider->GetHandle(), WmiInstanceConfig->UseContextForQuery,
191 WmiInstanceConfig->EvtWmiInstanceQueryInstance,
192 WmiInstanceConfig->EvtWmiInstanceSetInstance,
193 WmiInstanceConfig->EvtWmiInstanceSetItem,
194 WmiInstanceConfig->EvtWmiInstanceExecuteMethod,
status);
206 if (WmiInstanceConfig->UseContextForQuery) {
211 if (WmiInstanceConfig->EvtWmiInstanceSetInstance !=
NULL ||
212 WmiInstanceConfig->EvtWmiInstanceSetItem !=
NULL) {
217 "UseContextForQuery set, i.e. a read only instance, but " 218 "EvtWmiInstanceSetInstance %p or EvtWmiInstanceSetItem %p is " 220 WmiInstanceConfig->EvtWmiInstanceSetInstance,
221 WmiInstanceConfig->EvtWmiInstanceSetItem,
status);
235 "UseContextForQuery set, but InstanceAttributes %p is null or " 236 "there is no associated type, %!STATUS!",
245 status = RtlSizeTAdd(contextSize,
251 "Overlfow adding contextSize %I64d with size override %I64d, " 252 "%!STATUS!", contextSize,
269 "context size %I64d can be %d large, %!STATUS!",
278 if (contextSize < Provider->GetMinInstanceBufferSize()) {
283 "context size %I64d is less then the WDFWMIPROVIDER %p min size " 300 "could not allocate memory for WDFWMIINSTANCE, %!STATUS!",
306 if (contextSize > 0) {
FxWmiInstanceExternal(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_WMI_INSTANCE_CONFIG Config, __in FxWmiProvider *Provider)
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ NTSTATUS Commit(__in_opt PWDF_OBJECT_ATTRIBUTES Attributes, __out_opt WDFOBJECT *ObjectHandle, __in_opt FxObject *Parent=NULL, __in BOOLEAN AssignDriverAsDefaultParent=TRUE)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES InstanceAttributes
_Must_inspect_result_ _In_ WDFWMIINSTANCE WmiInstance
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_INTEGER_OVERFLOW
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ NTSTATUS FxValidateObjectAttributes(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in ULONG Flags=FX_VALIDATE_OPTION_NONE_SPECIFIED)
#define TRACE_LEVEL_ERROR
FxWmiInstanceExternal * pInstance
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
VOID SetContextForQueryLength(__in ULONG ContextSize)
VOID DeleteFromFailedCreate(VOID)
static SERVICE_STATUS status