IResourceList 인터페이스(portcls.h)

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

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

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

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 Interrupt 인터럽트
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