Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
misc.c
Abstract: Miscellaneous functions.
Environment:
Kernel mode
Author:
Michael Tsang (MikeTs) 13-Apr-2000
Revision History:
--*/
#include "pch.h"
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, RtlUnpackPartialDesc)
#endif //ifdef ALLOC_PRAGMA
/*****************************************************************************
* * @doc EXTERNAL * * @func PCM_PARTIAL_RESOURCE_DESCRIPTOR | RtlUnpackPartialDesc | * Pulls out a pointer to the partial descriptor you are interested * in. * * @parm IN UCHAR | ResType | Specifies the resource type we are interested * in. * @parm IN PCM_RESOURCE_LIST | ResList | Points to the resource list to * search. * @parm IN OUT PULONG | Count | Points to the index of the partial * descriptor you are looking for, gets incremented if found. * i.e. starts with *Count = 0, then subsequent calls will find the * next partial descriptor. * * @rvalue SUCCESS | returns pointer to the partial descriptor found. * @rvalue FAILURE | returns NULL. * *****************************************************************************/
PCM_PARTIAL_RESOURCE_DESCRIPTOR INTERNAL RtlUnpackPartialDesc( IN UCHAR ResType, IN PCM_RESOURCE_LIST ResList, IN OUT PULONG Count ) { PROCNAME("RtlUnpackPartialDesc") ULONG i, j, hit = 0;
PAGED_CODE();
ENTER(2, ("(ResType=%x,ResList=%p,Count=%d)\n", ResType, ResList, *Count));
for (i = 0; i < ResList->Count; ++i) { for (j = 0; j < ResList->List[i].PartialResourceList.Count; ++j) { if (ResList->List[i].PartialResourceList.PartialDescriptors[j].Type == ResType) { if (hit == *Count) { (*Count)++; EXIT(2, ("=%p (Count=%d)\n", &ResList->List[i].PartialResourceList.PartialDescriptors[j], *Count)); return &ResList->List[i].PartialResourceList.PartialDescriptors[j]; } else { hit++; } } } }
EXIT(2, ("=NULL (Count=%d)\n", *Count)); return NULL; } //RtlUnpackPartialDesc
|