다음을 통해 공유


IResourceList 인터페이스(portcls.h)

IResourceList 인터페이스는 플러그 앤 플레이 관리자가 시작 시 디바이스에 할당하는 시스템 하드웨어 리소스 목록인 구성 리소스 목록의 추상화 기능을 제공합니다. 목록의 리소스에는 인터럽트 벡터, DMA 채널, I/O 포트 주소 및 버스 상대 메모리 주소 블록이 포함될 수 있습니다. 자세한 내용은 함수 드라이버 디바이스 시작참조하세요.

PortCls 시스템 드라이버는 IResourceList 인터페이스를 구현하고 어댑터 드라이버에 노출합니다. PortCls가 어댑터 드라이버의 디바이스 시작 루틴을 호출할 때(디바이스시작 참조) IResourceList 개체를 호출 매개 변수 중 하나로 전달합니다.

헤더 파일 portcls.h는 리소스 목록 개체의 처리를 간소화하기 위해 매크로 집합을 정의합니다. 각 리소스 유형에 대해 다음 네 개의 매크로가 정의됩니다.

ULONG
  NumberOfpluralresourcename(
    void
 ); 

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindTranslatedsingularresourcename(
    ULONG  Index
    );

PCM_PARTIAL_RESOURCE_DESCRIPTOR
  FindUntranslatedsingularresourcename(
    ULONG  Index
    );

NTSTATUS
  AddsingularresourcenameFromParent(
    PRESOURCELIST  Parent,
    ULONG  Index
    );

다음 표에서는 이러한 매크로가 정의된 리소스 종류를 보여 줍니다.

리소스 종류 이름 단수 양식 복수형
CmResourceTypePort 항구 포트
CmResourceTypeInterrupt 인터럽트 인터럽트
CmResourceTypeMemory 기억 추억
CmResourceTypeDma Dma Dmas
CmResourceTypeDeviceSpecific DeviceSpecific DeviceSpecifics
CmResourceTypeBusNumber BusNumber BusNumbers
CmResourceTypePrivate 민간의 음부
CmResourceTypeAssignedResource AssignedResource AssignedResources
CmResourceTypeSubAllocateFrom SubAllocateFrom SubAllocateFroms
 

위의 왼쪽 열에 있는 리소스 종류 이름의 의미는 CM_PARTIAL_RESOURCE_DESCRIPTOR참조하세요.

다음 표에서는 portcls.h가 9개의 리소스 종류 각각에 대해 정의하는 4개의 매크로를 명시적으로 나열합니다. 각 매크로의 오른쪽에는 IResourceList 메서드에 대한 동일한 호출이 있습니다.

매크로 동등한 IResourceList 호출
NumberOfPorts() NumberOfEntriesOfType(CmResourceTypePort)
FindTranslatedPort(n) FindTranslatedEntry(CmResourceTypePort,(n))
FindUntranslatedPort(n) FindUntranslatedEntry(CmResourceTypePort,(n))
AddPortFromParent(p,n) AddEntryFromParent((p),CmResourceTypePort,(n))
NumberOfInterrupts() NumberOfEntriesOfType(CmResourceTypeInterrupt)
FindTranslatedInterrupt(n) FindTranslatedEntry(CmResourceTypeInterrupt,(n))
FindUntranslatedInterrupt(n) FindUntranslatedEntry(CmResourceTypeInterrupt,(n))
AddInterruptFromParent(p,n) AddEntryFromParent((p),CmResourceTypeInterrupt,(n))
NumberOfMemories() NumberOfEntriesOfType(CmResourceTypeMemory)
FindTranslatedMemory(n) FindTranslatedEntry(CmResourceTypeMemory,(n))
FindUntranslatedMemory(n) FindUntranslatedEntry(CmResourceTypeMemory,(n))
AddMemoryFromParent(p,n) AddEntryFromParent((p),CmResourceTypeMemory,(n))
NumberOfDmas() NumberOfEntriesOfType(CmResourceTypeDma)
FindTranslatedDma(n) FindTranslatedEntry(CmResourceTypeDma,(n))
FindUntranslatedDma(n) FindUntranslatedEntry(CmResourceTypeDma,(n))
AddDmaFromParent(p,n) AddEntryFromParent((p),CmResourceTypeDma,(n))
NumberOfDeviceSpecifics() NumberOfEntriesOfType(CmResourceTypeDeviceSpecific)
FindTranslatedDeviceSpecific(n) FindTranslatedEntry(CmResourceTypeDeviceSpecific,(n))
FindUntranslatedDeviceSpecific(n) FindUntranslatedEntry(CmResourceTypeDeviceSpecific,(n))
AddDeviceSpecificFromParent(p,n) AddEntryFromParent((p),CmResourceTypeDeviceSpecific,(n))
NumberOfBusNumbers() NumberOfEntriesOfType(CmResourceTypeBusNumber)
FindTranslatedBusNumber(n) FindTranslatedEntry(CmResourceTypeBusNumber,(n))
FindUntranslatedBusNumber(n) FindUntranslatedEntry(CmResourceTypeBusNumber,(n))
AddBusNumberFromParent(p,n) AddEntryFromParent((p),CmResourceTypeBusNumber,(n))
NumberOfDevicePrivates() NumberOfEntriesOfType(CmResourceTypeDevicePrivate)
FindTranslatedDevicePrivate(n) FindTranslatedEntry(CmResourceTypeDevicePrivate,(n))
FindUntranslatedDevicePrivate(n) FindUntranslatedEntry(CmResourceTypeDevicePrivate,(n))
AddDevicePrivateFromParent(p,n) AddEntryFromParent((p),CmResourceTypeDevicePrivate,(n))
NumberOfAssignedResources() NumberOfEntriesOfType(CmResourceTypeAssignedResource)
FindTranslatedAssignedResource(n) FindTranslatedEntry(CmResourceTypeAssignedResource,(n))
FindUntranslatedAssignedResource(n) FindUntranslatedEntry(CmResourceTypeAssignedResource,(n))
AddAssignedResourceFromParent(p,n) AddEntryFromParent((p),CmResourceTypeAssignedResource,(n))
NumberOfSubAllocateFroms() NumberOfEntriesOfType(CmResourceTypeSubAllocateFrom)
FindTranslatedSubAllocateFrom(n) FindTranslatedEntry(CmResourceTypeSubAllocateFrom,(n))
FindUntranslatedSubAllocateFrom(n) FindUntranslatedEntry(CmResourceTypeSubAllocateFrom,(n))
AddSubAllocateFromFromParent(p,n) AddEntryFromParent((p),CmResourceTypeSubAllocateFrom,(n))

상속

IResourceList 인터페이스는 IUnknown 인터페이스에서 상속됩니다.

방법

IResourceList 인터페이스에는 이러한 메서드가 있습니다.

 
IResourceList::AddEntry

AddEntry 메서드는 리소스 목록에 항목을 추가합니다.
IResourceList::AddEntryFromParent

AddEntryFromParent 메서드는 리소스 목록의 부모 목록에 있는 항목을 리소스 목록에 추가합니다.
IResourceList::FindTranslatedEntry

FindTranslatedEntry 메서드는 지정된 형식의 변환된 항목에 대한 포인터를 반환하고, 이러한 항목이 없으면 NULL을 반환합니다.
IResourceList::FindUntranslatedEntry

FindUntranslatedEntry 메서드는 지정된 형식의 변환되지 않은 항목에 대한 포인터를 반환하고, 이러한 포인터가 없으면 NULL을 반환합니다.
IResourceList::NumberOfEntries

NumberOfEntries 메서드는 리소스 목록의 리소스 항목 수를 반환합니다.
IResourceList::NumberOfEntriesOfType

NumberOfEntriesOfType 메서드는 리소스 목록에서 지정된 형식의 리소스 항목 수를 반환합니다. 각 리소스 종류에 대해 앞에서 설명한 대로 이 메서드를 호출하도록 매크로가 정의됩니다.
IResourceList::TranslatedList

TranslatedList 메서드는 번역된 리소스 목록을 반환합니다.
IResourceList::UntranslatedList

UntranslatedList 메서드는 번역되지 않은 리소스 목록을 반환합니다.

요구 사항

요구
대상 플랫폼 Windows
헤더 portcls.h