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 |