EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY 콜백 함수(wdfchildlist.h)
[KMDF에만 적용]
드라이버의 EvtChildListAddressDescriptionCopy 이벤트 콜백 함수는 지정된 위치에서 다른 위치로 자식 주소 설명을 복사합니다.
구문
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY EvtWdfChildListAddressDescriptionCopy;
void EvtWdfChildListAddressDescriptionCopy(
[in] WDFCHILDLIST ChildList,
[in] PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER SourceAddressDescription,
[out] PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER DestinationAddressDescription
)
{...}
매개 변수
[in] ChildList
프레임워크 자식 목록 개체에 대한 핸들입니다.
[in] SourceAddressDescription
자식 주소 설명의 원본 위치를 식별하는 WDF_CHILD_ADDRESS_DESCRIPTION_HEADER 구조체에 대한 포인터입니다.
[out] DestinationAddressDescription
자식 주소 설명의 대상 위치를 식별하는 WDF_CHILD_ADDRESS_DESCRIPTION_HEADER 구조체에 대한 포인터입니다.
반환 값
없음
설명
버스 드라이버가 동적 열거형을 사용하는 경우 WdfFdoInitSetDefaultChildListConfig 또는 WdfChildListCreate를 호출하여 EvtChildListAddressDescriptionCopy 콜백 함수를 등록할 수 있습니다.
프레임워크는 기존 설명을 새 정보로 업데이트해야 하거나 주소 설명의 내용을 드라이버에 전달해야 하는 경우 드라이버에서 제공한 주소 설명 중 하나에서 다른 정보로 정보를 복사합니다.
EvtChildListAddressDescriptionCopy 콜백 함수는 원본 설명의 내용을 대상 설명에 복사해야 합니다. 드라이버는 자식 디바이스에 주소 설명이 필요하고 프레임워크가 RtlCopyMemory 를 호출하여 주소 설명을 복사할 수 없는 경우 이 콜백 함수를 제공해야 합니다. 설명에 추가 메모리에 대한 포인터가 포함된 경우 프레임워크에서 RtlCopyMemory 를 호출할 수 없습니다.
드라이버가 주소 설명을 제공하지만 EvtChildListAddressDescriptionCopy 콜백 함수를 제공하지 않는 경우 프레임워크는 RtlCopyMemory를 호출하여 주소 설명을 복사합니다.
다음 단계에서는 일반적인 시나리오를 설명합니다.
- 드라이버는 자식 디바이스가 있는지 확인합니다.
- 드라이버는 WDF_CHILD_ADDRESS_DESCRIPTION_HEADER 구조를 포함하는 드라이버 정의 구조를 채우고 디바이스별 크기의 주소 정보를 저장하기 위해 추가 메모리를 동적으로 할당하여 주소 설명을 만듭니다.
- 드라이버는 WdfChildListAddOrUpdateChildDescriptionAsPresent 를 호출하여 자식 디바이스를 보고하고 주소 설명에 대한 포인터를 제공합니다.
- 프레임워크는 드라이버가 이전에 디바이스를 보고했음을 확인하므로 프레임워크는 디바이스의 이전 주소 설명을 새 정보로 업데이트할 수 있습니다.
- 프레임워크는 EvtChildListAddressDescriptionCopy 콜백 함수(있는 경우) 또는 RtlCopyMemory 를 호출하여 새 주소 설명 정보를 기존 주소 설명에 복사합니다.
- 콜백 함수의 SourceAddressDescription 및 DestinationAddressDescription 구조에서 동적으로 할당된 메모리에 대한 포인터를 찾습니다.
- 포인터를 사용하여 원본에서 대상으로 동적으로 할당된 메모리를 복사합니다.
- 콜백 함수의 SourceAddressDescription 구조체에서 콜백 함수의 DestinationAddressDescription 구조체로 다른 구조체 멤버를 복사합니다.
프레임워크는 EvtChildListAddressDescriptionCopy 콜백 함수를 호출하기 전에 내부 자식 목록 개체 잠금을 획득합니다. 콜백 함수는 프레임워크 메모리 개체 메서드 호출 및 개체 컨텍스트 공간 액세스와 같이 설명된 복사 작업과 관련된 작업만 수행해야 합니다. 다른 드라이버에 액세스하는 메서드를 호출해서는 안됩니다.
드라이버가 EvtChildListAddressDescriptionCopy 콜백 함수를 제공하는 경우 EvtChildListAddressDescriptionDuplicate 및 EvtChildListAddressDescriptionCleanup 콜백 함수가 필요할 수도 있습니다.
동적 열거형에 대한 자세한 내용은 버스에서 디바이스 열거를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
머리글 | wdfchildlist.h(Wdf.h 포함) |
IRQL | <= DISPATCH_LEVEL |
추가 정보
EvtChildListAddressDescriptionCleanup
EvtChildListAddressDescriptionDuplicate
WDF_CHILD_ADDRESS_DESCRIPTION_HEADER