IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG IOCTL(ntddstor.h)
드라이버는 IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG 사용하여 디바이스에서 내부 상태 데이터를 가져올 수 있습니다.
주 코드
IRP_MJ_INTERNAL_DEVICE_CONTROL
입력 버퍼
쿼리할 데이터 형식을 식별하는 GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST 구조체입니다.
입력 버퍼 길이
Parameters.DeviceIoControl.InputBufferLength는 = sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST)여야 >하는 Irp-AssociatedIrp.SystemBuffer>의 매개 변수 버퍼 크기를 바이트 단위로 나타냅니다.
출력 버퍼
드라이버는 Irp-AssociatedIrp.SystemBuffer>의 버퍼에 출력을 반환합니다. 이 버퍼에는 디바이스의 내부 상태 있는 DEVICE_INTERNAL_STATUS_DATA 구조가 포함됩니다.
출력 버퍼 길이
I/O 스택 위치의 Parameters.DeviceIoControl.OutputBufferLength는 = sizeof(DEVICE_INTERNAL_STATUS_DATA)여야 >하는 매개 변수 버퍼의 크기를 바이트 단위로 나타냅니다.
입력/출력 버퍼
해당 없음
입력/출력 버퍼 길이
해당 없음
상태 블록
Irp->요청이 성공하면 IoStatus.Status 가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 상태가 NTSTATUS 코드로 적절한 오류 조건으로 설정됩니다. 자세한 내용은 NTSTATUS 값을 참조하세요.
설명
IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG 모든 스토리지 디바이스에서 호스트 시작 디바이스 원격 분석 로그를 반환합니다. 다음 의사 코드는 원격 분석 데이터 헤더를 요청하는 방법을 보여 줍니다.
// Allocate a GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST structure, then
// initialize it with a data header request:
// request.Version = sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST);
// request.Size = sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST);
// request.RequestDataType = DeviceCurrentInternalStatusDataHeader;
// Allocate a DEVICE_INTERNAL_STATUS_DATA structure in which
// to return the header data, with outputBufferLength set to
// (sizeof(DEVICE_INTERNAL_STATUS_DATA) + 512).
// Get the device internal status data.
BOOL result = TRUE;
ULONG returnedLength = 0;
result = DeviceIoControl(deviceHandle,
IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG,
&request,
sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST),
&outputBuffer,
outputBufferLength,
&returnedLength,
NULL);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10, 버전 2004 |
머리글 | ntddstor.h |