VOID KeInitializeProfile( IN PKPROFILE Profile, IN PKPROCESS Process OPTIONAL, IN PVOID RangeBase, IN ULONG RangeSize, IN ULONG BucketSize, IN ULONG Segment, IN KPROFILE_SOURCE ProfileSource, IN KAFFINITY ProfileAffinity ); Routine Description: This function initializes a kernel profile object. The process, address range, bucket size, and buffer are set. The profile is set to the stopped state. Arguments: Profile - Supplies a pointer to control object of type profile. Process - Supplies an optional pointer to a process object that describes the address space to profile. If not specified, then all address spaces are included in the profile. RangeBase - Supplies the address of the first byte of the address range for which profiling information is to be collected. RangeSize - Supplies the size of the address range for which profiling information is to be collected. The RangeBase and RangeSize parameters are interpreted such that RangeBase <= address < RangeBase + RangeSize generates a profile hit. BucketSize - Supplies the log base 2 of the size of a profiling bucket. Thus, BucketSize = 2 yields 4-byte buckets, BucketSize = 7 yields 128-byte buckets. Segment - Supplies the non-Flat code segment to profile. If this is zero, then the flat profiling is done. This will only be non-zero on an x86 machine. ProfileSource - Supplies the profile interrupt source. ProfileAffinity - Supplies the set of processor to count hits for. Return Value: None.