CONTAINING_RECORD

This macro returns the base address of an instance of a structure, given the type of the structure and the address of a member within the containing structure.

At a Glance

Header file: Winnt.h
Windows CE versions: 2.0 and later

Syntax

PCHAR CONTAINING_RECORD( IN PCHAR Address, IN TYPE Type,
IN PCHAR
Field );

Parameters

Address
Pointer to a field in an instance of a structure of type Type.
Type
The name of the type of the structure whose base address is to be returned, for example, type IRP.
Field
The name of the field pointed to by Address contained in a structure of type Type.

Return Values

Returns a pointer to the base of the structure containing Field.

Remarks

This macro is called to determine the base address of a structure whose type is known when the caller has a pointer to a field inside such a structure. This macro is useful for symbolically accessing other fields in a structure of known type.

A driver that calls this macro can be running at any IRQ level as long as the structure is resident. If a page fault might occur, callers must be at or below IRQ level APC_LEVEL.