다음을 통해 공유


_KsEdit 함수(ks.h)

KsEdit 함수는 지정된 항목이 개체 모음을 통해 AVStream 개체와 동적으로 할당되고 연결되도록 보장합니다.

통사론

KSDDKAPI NTSTATUS _KsEdit(
  [in]      KSOBJECT_BAG ObjectBag,
  [in, out] PVOID        *PointerToPointerToItem,
  [in]      ULONG        NewSize,
  [in]      ULONG        OldSize,
  [in]      ULONG        Tag
);

매개 변수

[in] ObjectBag

검사에 사용할 KSOBJECT_BAG(형식 PVOID에 해당)입니다. 항목이 개체 모음에 포함되지 않은 경우 KsEdit 동적으로 항목에 충분한 메모리를 할당하고, 이전 내용을 복사하고, 이 개체 모음에 새로 할당된 메모리를 배치합니다.

[in, out] PointerToPointerToItem

편집 중인 항목에 대한 포인터에 대한 포인터입니다.

[in] NewSize

항목에 할당할 바이트 수입니다.

[in] OldSize

항목이 현재 차지하는 바이트 수입니다.

[in] Tag

할당에 사용할 풀 태그를 포함합니다. 드라이버는 일반적으로 풀 태그를 작은따옴표로 구분하여 최대 4자의 문자열로 지정합니다. 문자열은 일반적으로 역순으로 지정됩니다. 태그에 있는 각 문자의 ASCII 값은 0에서 127 사이여야 합니다.

반환 값

성공 또는 STATUS_INSUFFICIENT_RESOURCES 반환합니다.

발언

KsEditKsEditSized_KsEdit 사용하기 쉽도록 만든 매크로입니다. _KsEdit 항목의 크기를 조정할 수 있지만 KsEdit 않습니다. 매크로 KsEdit_KsEdit호출하여 sizeof(** PointerToPointerToItem)를 두 크기로 지정합니다.

예를 들어 생성할 때 할당자 프레이밍을 수정해야 하는 핀을 고려합니다. 설명자는 정적으로 코딩되고 새 핀이 이를 사용할 수 있으므로 해결 방법은 다음과 같이 핀 설명자를 수정하는 것입니다.

KsEdit(Pin, &Pin->Descriptor, Tag);
Pin->Descriptor->AllocatorFraming = NewAllocatorFraming;

KsEdit 호출하면 핀>설명자Pin연결된 동적 메모리가 보장됩니다. 설명자 및 기타 AVStream 구조를 임의로 수정하면 바람직하지 않은 결과가 발생할 수 있습니다. 미니 드라이버는 AVStream 구조에서 KsEdit 사용할 때 주의를 기울여야 합니다.

KsEditSized 호출은 ObjectObject->Bag 대체되고 포인터가 PVOID에 typecast된다는 점을 제외하고 수신하는 것과 동일한 매개 변수로 _KsEdit 호출합니다.

_KsEdit호출할 때 호출자는 가방과 연결된 뮤텍스를 보유해야 합니다. 자세한 내용은 AVStream 개체 모음 및뮤텍스를 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 ks.h(Ks.h 포함)
라이브러리 Ks.lib
IRQL PASSIVE_LEVEL