Previous Next

CUV Error Messages

This section describes each of the error messages that CUV displays. In the error messages, Type represents the name of a data structure and Number identifies a parameter of the current routine. (A Number value of 1 represents the first argument.)

"The Type specified as parameter Number [0xAddress] has not been previously initialized by this driver."
CUV has not seen a call to an appropriate initialization routine prior to this use of Type as parameter Number in this function call. The address of the parameter Type is Address.
"The Type specified as parameter Number [0xAddress] has already been initialized by this driver."
CUV has already seen a call to initialize the data structure Type. The message typically appears as a result of a second or subsequent call to the same initialization routine and before Type has been used in another function call.
"The Type specified as parameter Number [0xAddress] has been initialized by this driver as a Type1 (not a Type2)."
CUV has seen a prior initialization of the data structure at Address as a data structure of Type1, but the driver is attempting to use or initialize this same location as a data structure of Type2.
"The Type specified as parameter Number [0xAddress] has been previously initialized and used as a Type2 by this driver."
The driver is attempting to use a data structure that has been initialized (and perhaps used) as a Type1. For example, this message is displayed when a driver attempts to use the same spin lock as both an in-stack queued spin lock and a standard executive (IRQL = DISPATCH_LEVEL) spin lock.
"The Type1 specified as parameter Number [0xAddress1] is not the same Type2 [0xAddress2] as previously used with the PairedType specified on the function call. Refer to your use of this same Type at Path, line LineNumber."
The driver has incorrectly used a set of paired data structures, using Type1 at Address1 in this function call with PairedType, and the Type2 at Address2 also with PairedType previously. For example, this message is displayed when a driver attempts to perform interlocked operations on one list head, using two different spin locks.
"The Type specified as parameter Number [0xAddress] must be located in non-paged memory, but is instead a NULL pointer."
"The Type specified as parameter Number [0xAddress] must be located in non-paged memory, but is instead located in paged memory."
"The Type specified as parameter Number [0xAddress] must be located in non-paged memory, but is instead located on the stack."
The data structure of Type that is located at Address must be located in nonpaged space, but CUV has found the data structure located in the memory type specified. Note that CUV does not consider the stack to be a valid storage location for structures that must reside in nonpaged memory. See CUV Limitations for a further discussion of stack-based nonpaged parameters.
"The Type specified as parameter Number [0xAddress] is not a valid Type."
CUV has determined that the data structure at Address is not a valid Type. For example, this message is displayed when CUV attempts to validate an IRP and discovers that Irp->Type does not equal IO_TYPE_IRP.
"The current stack location in the IRP specified as parameter Number [0xAddress] is not valid."
"The next stack location in the IRP specified as parameter num [0xaddress] is not valid."
The indicated stack location in the IRP at Address is not valid, because there is no such stack location in the IRP. For example, this message is displayed when a driver calls IoGetNextIrpStackLocation, but there are no more valid stack locations in the IRP.