KsAllocateExtraData 함수(ks.h)
KsAllocateExtraData 함수는 스트리밍 IRP와 함께 사용되어 추가 헤더 데이터를 포함하는 버퍼를 할당합니다. 할당된 버퍼에 대한 포인터가 반환되고 결국 호출자가 버퍼를 해제해야 합니다.
통사론
KSDDKAPI NTSTATUS KsAllocateExtraData(
[in, out] PIRP Irp,
[in] ULONG ExtraSize,
[out] PVOID *ExtraBuffer
);
매개 변수
[in, out] Irp
스트림 헤더를 포함하는 IRP를 지정합니다. 헤더를 버퍼링하려면 이전에 KsProbeStreamIrp IRP를 전달해야 합니다.
[in] ExtraSize
각 스트림 헤더 간에 할당할 추가 메모리의 크기(바이트)를 지정합니다. 이 값 8 바이트 경계에서 정렬할 수 합니다. 헤더의 복사본은 반환된 버퍼에 배치되며 각 헤더 사이에 추가 데이터 크기가 삽입됩니다. 호출자가 해제해야 합니다.
[out] ExtraBuffer
성공적으로 완료될 때 스트림 헤더와 해당 헤더 간의 요청된 패딩을 포함하는 시스템 할당 버퍼를 가리키는 호출자 할당 포인터를 가리킵니다. 호출자가 해제해야 합니다.
반환 값
KsAllocateExtraData 함수는 성공하면 STATUS_SUCCESS 반환하거나 리소스 또는 액세스 오류를 반환합니다.
발언
KsAllocateExtraData 성공적으로 완료되면 IRP의 스트림 데이터 헤더( Irp지정됨) 및 ExtraSize지정된 크기의 각 헤더 사이에 패딩을 포함하는 메모리 블록에 대한 포인터가 반환됩니다. 이러한 결과 버퍼의 예는 다음과 같습니다.
결과 버퍼를 보여 주는
추가 버퍼가 더 이상 필요하지 않은 경우 ExFreePool사용하여 메모리를 해제해야 합니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
헤더 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |
IRQL | < DISPATCH_LEVEL |