Framework Object Creation Errors
When a driver's attempt to create a framework object fails, the object creation method returns an NTSTATUS value that indicates the failure type.
If the driver specifies invalid information in a WDF_OBJECT_ATTRIBUTES structure, the framework can return:
The driver specified an object context name, but the context size is zero.
The driver specified a context size override value, but it did not provide a WDF_OBJECT_CONTEXT_TYPE_INFO structure.
The driver specified a ContextSizeOverride value in WDF_OBJECT_ATTRIBUTES that is less than the ContextSize member of the WDF_OBJECT_CONTEXT_TYPE_INFO structure.
The driver specified an ExecutionLevel value in WDF_OBJECT_ATTRIBUTES that is not within the valid range of values.
The driver specified an SynchronizationScope value in WDF_OBJECT_ATTRIBUTES that is not within the valid range of values.
The driver attempted to assign a parent to the object, but the framework does not allow drivers to assign parents to the object type.
The driver attempted to assign a parent to an object, but a parent is already assigned to the object.
The driver attempted to make an object its own parent.
The driver specified a WDF_SYNCHRONIZATION_SCOPE-typed value that is invalid for the object type.
The driver specified a WDF_EXECUTION_LEVEL-typed value that is invalid for the object type.
If the Size member of any framework-defined structure does not match the structure's actual size, the framework can return STATUS_INFO_LENGTH_MISMATCH.
If the framework cannot allocate memory for the new object, it can return STATUS_INSUFFICIENT_RESOURCES.
Individual object creation methods might also return additional NTSTATUS values. For more information about each creation method's additional return values, see the method's reference page.