winbase.h에서 DeviceIoControl 함수는 다음과 같이 정의됩니다.Microsoft SAL annotation - 선택 매개 변수
BOOL
WINAPI
DeviceIoControl(
__in HANDLE hDevice,
__in DWORD dwIoControlCode,
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer,
__in DWORD nInBufferSize,
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer,
__in DWORD nOutBufferSize,
__out_opt LPDWORD lpBytesReturned,
__inout_opt LPOVERLAPPED lpOverlapped
);
매개 변수 lpBytesReturned의 주석은 옵션으로 정의된다.
그러나 호출자가 동기 입출력을 사용하는 경우에는 선택적 매개 변수가 아닙니다.
호출자가 Null을 lpBytesReturned으로 설정하고 동기 I/O를 사용하는 경우 응용 프로그램이 죽을 수 있습니다.
기능을 만들 때 종종이 문제에 직면합니다.
SAL에서 이것을 표현하는 방법을 모르겠습니다.
표현할 수있는 특수 효과가 있나요?
P.S 가능한 경우 SAL 태그를 만드십시오. 아직 태그가 없습니다.
오, 감사합니다. Necrolis – Benjamin